0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 6
1

Сортировка по возрастанию методом вставок

06.02.2018, 18:27. Показов 13978. Ответов 6

Массив из 5 целых чисел заполнить вводом с клавиатуры.Произвести сортировку массива по возрастанию методом вставок. Заполнение массива произвести до начала сортировки. После каждого прохода выводить содержимое массива.
Входные данные Результат работы
1 3 2 5 4 1 3 2 5 4
1 3 2 5 4
1 2 3 5 4
1 2 3 4 5
Помогите пожалуйста! При написании используйте scanf() и printf() мне так более понятно и как можно более просто и понятно если не трудно приложите пояснения к коду.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2018, 18:27
Ответы с готовыми решениями:

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать...

Сортировка методом Вставок
Вот собственно вопрос. Масив записей структура которого конечная остановка, и время прибытия, нужно...

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать...

Сортировка методом простых вставок
Сортировка методом простых вставок - алгоритм S с. Вычисление трудоемкости Замер времени для...

6
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 6
06.02.2018, 19:15  [ТС] 2
Проблема не в том что не могу отсортировать а не могу выводить весь массив каждый прогон через цикл
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
06.02.2018, 19:17 3
Dmitry1999, код в студию
0
7422 / 5017 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
06.02.2018, 19:23 4
Dmitry1999, вот здесь подробненько: Алгоритмы сортировок
Цитата Сообщение от Dmitry1999 Посмотреть сообщение
При написании используйте scanf() и printf() мне так более понятно
Вы в разделе С++. Используйте cin>>a; для ввода и cout <<a; для вывода - абсолютно нет ничего сложного.
Прочитайте про эти операторы чтобы использовать их дополнительные возможности.
1
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 6
06.02.2018, 19:24  [ТС] 5
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
#include<stdlib.h>
#define n 5
int main()
{
 int a[n],i,k=0,temp,t;
 for (i=0;i<n;i++)
 {
   scanf("%i";&a[i]);
 }
 for(t=0;t<n;t++)
 { 
    for(i=1;i<=n;i++)
     {
       temp=a[i-1];
       k=i-1;
      }
          while(k>0 && temp<a[k-1])
          {
             a[k]=a[k-1];
             k--;
             printf("%i",a[k]);
           }
   a[k]=temp;
   printf("\n" " %i",a[k]);
 }
}
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
06.02.2018, 19:38 6
Лучший ответ Сообщение было отмечено Dmitry1999 как решение

Решение

Форматирование кода выполняется кнопкой "С++" вторая строка слева

Цитата Сообщение от Dmitry1999 Посмотреть сообщение
Проблема не в том что не могу отсортировать а не могу выводить весь массив каждый прогон через цикл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <stdlib.h>
 
const int n = 5;
 
int main()
{
    int a[n], i, k = 0, temp, t;
    for (i = 0; i < n; i++)
    {
        scanf("%i"; &a[i]);
    }
    for (t = 0; t < n; t++)
    {
        for (i = 1; i <= n; i++)
        {
            temp = a[i - 1];
            k = i - 1;
        }
        while (k > 0 && temp < a[k - 1])
        {
            a[k] = a[k - 1];
            k--;
            printf("%i", a[k]);
        }
        a[k] = temp;
        printf("\n %i", a[k]);
    }
}
Этот код у вас даже не скомпилируется на строке scanf("%i"; &a[i]);

Добавлено через 8 минут
Dmitry1999,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int n = 5;
 
int main()
{
    int a[n];
    for (int i = 0; i < n; ++i)
        scanf("%i", a + i);
    for (int i = 0, x, j; i < n; ++i)
    {
        x = a[i];
        for (j = i - 1; j >= 0 && a[j] > x; --j) a[j + 1] = a[j];
        a[j + 1] = x;
        // print result
        for (j = 0; j < n; printf("%d ", a[j++]));
        printf("\n");
    }
}
а надо было всего то взять пример что я дал по ссылке и на для каждого шага добавить вывод.
1
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 6
06.02.2018, 20:03  [ТС] 7
Спасибо огромное!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2018, 20:03
Помогаю со студенческими работами здесь

Сортировка методом центрированных вставок
Доброго времени суток. Помоги доделать программу. Я решил сделать эту сортировку через...

Сортировка двумерного массива методом вставок
Создать программу, сортирующую методом вставок двумерный массив целых чисел. При этом самое...

Сортировка списка методом простых вставок
Помогите сделать чтобы в программе были двусвязные списки и чтобы списки из файла выводились в...

Сортировка диагоналей матрицы методом Шелла/вставок
Дана матрица размерностью n*n, содержащая целые числа. Отсортировать диагонали матрицы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru