Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Sebelia
1 / 1 / 0
Регистрация: 02.11.2012
Сообщений: 47
1

Сортировка Шелла

07.06.2013, 17:35. Просмотров 814. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста исправить ошибки в программе.Она запускается,но после ввода строки вылетает и не сортирует её.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>
#include <stdlib.h>
int BubbleSort(int *tmp,int len)
{
    int i,j,c;
    int k=0;
    for (i=len;i>1;i--)
    {
        k=0;
        if (tmp[j]<tmp[j-1])
        for (j=1;j<i;j++)
        {
            c=tmp[j];
            tmp[j]=tmp[j-1];
            tmp[j-1]=c;
            k=1;
        }
        if (k==0) return 0;
    }
}
 
int ShellSort(int *tmp,int len)
{
    long d=len,i,j;
    int c;
 
    do
    {
        d=d/2;
        i=0;
        while ((j=i+d)<len)
        {
            if (tmp[i]>tmp[j])
            {
                c=tmp[i];
                tmp[i]=tmp[j];
                tmp[j]=c;
            }
            i++;
        }
    }
    while (d>1);
 
    BubbleSort(tmp,len);
}
 
int main()
{ int i;
    int k[10];
    puts("Введите строку");
    gets(k);
    for ( i=0; i<10;i++)
        printf(" %d ",k[i]);
    printf("\n");
 
    ShellSort(k,10);
 
    for (i=0; i<10;i++)
        printf(" %d ",k[i]);
    printf("\n");
 
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2013, 17:35
Ответы с готовыми решениями:

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

Сортировка Шелла
Помогите пожалуйста сделать сортировку Шелла. Тип входных данных целочисленный. Направление...

Сортировка Шелла
Помогите разобраться. Пока что только это - целочисленная сортировка: int array = {10, 9, 8, 7, 6,...

Сортировка Шелла
Написать функцию сортировки методом Шелла, значения расстояния d в ходе работы функции должны...

Сортировка Шелла
Мне нужно отсортировать массив на 500 элементов, который создается рандомно, используя сортировку...

1
shurikspk
402 / 221 / 43
Регистрация: 10.02.2013
Сообщений: 780
07.06.2013, 19:36 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
void shell(int* array, int kol)
{
    if(array==NULL || *array == NULL)
        printf("Массив пуст или не создан! Сортировка невозможна!!!\n");
    else
    {
        int g[5]={5,4,3,2,1};
        int m;
        int j;
        for(int k=0; k<5; k++)
        {
            g=r[k];
            for(int i=g; i < kol; ++i)
            {
              m = array[i];
 
                 for(j=i-g; (m > array[j]) && (j >= 0); j=j-g)
                    array[j+g] = array[j];
                 array[j+g] = m;
            }
        }
    }
 
}
 
 
 
/*сравнение 2 элементов*/
bool sr_vozr(int value_1, int value_2)
{
    if(value_2<value_1)
        return true;
    else
        return false;
}
 
/*сравнение 2 элементов*/
bool sr_ubivan(int value_1, int value_2)
{
    if(value_2>value_1)
        return true;
    else
        return false;
}
 
/*сортировка методом простого обмена*/
void sort_exchange(int* array, int kol, sravnen point)
{
    if(array==NULL )
        printf("Массив пуст или не создан! Сортировка невозможна!!!\n");
    else
    {
        for(int i=0; i<kol-1; i++)
        {
            bool flag=false;
            for(int j=1; j<kol; j++)
            {
                if(point(array[j-1], array[j])==1)
                    {
                        int temp=array[j];
                        array[j]=array[j-1];
                        array[j-1]=temp;
                        flag=true;
                    }
            }
            if(flag==false)
                return;
        }
    }
}

вот эти точно работают
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2013, 19:36

Сортировка хоаром и шелла
Что-то ему не нравится в Хоара, помогите найти ошибку #define size 100 #include &lt;stdio.h&gt;...

Сортировка Шелла. Количество сравнений.
Здравствуйте! Может кто-нибудь помочь? Требовалось отсортировать массивы разного размера при...

Сортировка Шелла, поясните код
Кто-нибудь может построчно объяснить, что происходит в этой функции. Я немного разобрался, но...


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

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

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