Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
b0n4b
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 100
#1

Сортировка вставкой - C++

23.11.2011, 00:49. Просмотров 1402. Ответов 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
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int a[4];
    int n, i, j, x;
    printf ("Enter the number of elements ");
    scanf ("%d", &n);
    for (i=0; i<n-1; i++)
    {       
        printf ("%d's = ", i+1);
        scanf ("%d", &a[i]);
    }
    for (i=1; i<n-1; i++)
    {       
        x=a[i];
        j=i-1;
        if (j>=0 && x<a[j])
        {
            a[j-1]=a[j];
            j=j-1;
        }
        else
        {
            a[j+1]=x;
        }
    }
    printf ("Sort ");  
    for (i=0; i<n-1; i++)
    {   
        printf ("%d ", a[i]);
    }
    getch ();
    return 1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 00:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка вставкой (C++):

Сортировка вставкой - C++
(желательно ближе к си) Определить массив из 50 вещественных чисел: x = 10*Cos( i/10), i= 1, 2, . . . 50. Отсортировать массив по...

Сортировка вставкой - C++
1)Дан массив состоящий из n элементов (n&lt;=100) Отсортировать методом вставки и вывести пятый минимум. Добавлено через 1 час 42 минуты ...

Сортировка вставкой - C++
В файле input.txt содержатся сведения о группе студентов в формате:номер группы, фамилия, имя, год рождения, оценки по пяти предметам. ...

Сортировка вставкой - C++
while(mc!=m) {nov=n; for(is=0;is&lt;n;is++){ for (i=nov;i&lt;n;i++){if (vmatr&lt;sk2){sk2=vmatr;c=i;}} nov++; if(sk2==vmatr){continue;} for...

Сортировка двоичной вставкой - C++
Доброе время суток. Есть программа на pascal, выполняющая сортировку массива по убыванию, нужно переписать на с++. Программа на паскале...

Сортировка массива вставкой - C++
Доброго времени суток. У меня вот такая задача: Вариант 13; Задание на русском: 1) заполнить массив А(40) случайными целыми...

5
мфьз
3 / 3 / 1
Регистрация: 07.05.2011
Сообщений: 46
23.11.2011, 02:15 #2
Вот полностью рабочая программа
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
30
31
32
33
34
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
  printf ("vvedite razmer massiva: ");
  scanf ("%d",&n);
  int a[n];
  printf ("Vvedite elementi massiva: ");
  for ( int i=0;i<n;i++){
  scanf ("%d",&a[i]);
}
   printf("Ishodnii massiv: ");
for ( int i=0;i<n;i++){
   printf ("%d\t",a[i]);
  }
int temp;
    int j;
    for (int i=0;i<n;i++)
    {
        temp=a[i];
        j=i-1;
        while ((j>=0)&&(a[j]>temp))
        {
            a[j+1]=a[j];
            j=j-1;
            a[j+1]=temp;
        }
    }
 printf("\n Otsortirovanii massiv: ");
for ( int j=0;j<n;j++){
   printf ("%d\t",a[j]);
  }
    return 0;
}
0
b0n4b
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 100
23.11.2011, 09:30  [ТС] #3
Мне надо найти ошибку. Не хочу тупо сдирать готовый код
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.11.2011, 09:47 #4
Цитата Сообщение от b0n4b Посмотреть сообщение
Мне надо найти ошибку. Не хочу тупо сдирать готовый код
Исправленный кусок вашей программы:
C++
1
2
3
4
5
6
7
8
9
10
11
for (i=1; i<n; i++)
        {       
                x=a[i];
                j=i-1;
                while (j>=0 && x<a[j])
                {
                        a[j+1]=a[j];
                        j=j-1;
                }
                a[j+1]=x;
        }
1
b0n4b
3 / 3 / 0
Регистрация: 16.11.2011
Сообщений: 100
23.11.2011, 10:13  [ТС] #5
Благодарю. А не могли бы пояснить почему именно так?
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.11.2011, 10:19 #6
Лучше вам почитать описание данного алгоритма. Если бы за один проход по массиву (как у вас) можно было отсортировать весь массив, то такая сортировка была бы самой востребованной))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2011, 10:19
Привет! Вот еще темы с ответами:

Сортировка вставкой (оцените) - C++
Доброго времени суток! Прошу, оцените реализацию сортировки целочисленного массива методом вставки, есть ли какие-нибудь недостатки и...

Сортировка двухпутевой вставкой - C++
Народ, вот тут написал сортировку двухпутевой вставкой с разными вариантами ввода массива. Суть не в сортировке, она работает. Третий пункт...

Сортировка вставкой: объяснить ход действий - C++
помогите разобрать сами действия сортировки, что они значат Добавлено через 17 секунд int main() { int n = 10, i = 0, a=0; ...

Методы сортировки: QuickSort и сортировка вставкой - C++
Помогите добавить сортировки в программу. Упорядочить по неубыванию массив структур по заданному ключу. Ключ: возраст. Методы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru