Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 9
1

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

01.03.2017, 06:06. Просмотров 846. Ответов 4
Метки нет (Все метки)

надо перевести на метод шелла
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
#include <iostream>
#include <cstdlib>
 
using namespace std;
int main()
{
        
 
        int const k=10;  // Количество эл-ов массива
        int ind=0,flag=0,i=0,j=0,z=0;
        double S[k],temp=0; // 
        cout << "Please enter the elements of the array:"<<endl;
        for (i=0;i<k;i++) // В цикле задаём элементы массива
        {
            cin>>S[i];   
        }
        for (i=0;i<k-1;i++)
        {
            for (j=i+1;j<k;j++)
            {
                if (S[j]==S[i])
                {
                    if(flag==0)
                    {
                        temp=S[ind];
                        S[ind]=S[i];
                        S[i]=temp;
                        flag=1;
                        ind++;
                        //j++;
                    }
                    temp=S[ind];
                    S[ind]=S[j];
                    S[j]=temp;
                    ind++; 
                }
            }
            if (flag==1)
            {
                flag=0;
                i=ind-1;
            }
        }
        cout<<"New array"<<endl;
        for (i=0;i<k;i++)
        {
            cout<<S[i]<<" ";   
        }
        system("PAUSE > void");
        return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2017, 06:06
Ответы с готовыми решениями:

Cортировка методом Шелла
Нужно выполнить сортировку 5-видов, 4 нормально работают, а 5 (методом Шелла) не работает. Которые...

Cортировка массива.
помогите с кодом, а то завтра надо уже сдать 1)При записи отсортированный массив у меня в файле...

Cортировка массива
Здравствуйте! Существует задание: Дан массив n действительных чисел. Если исходный массив имеет...

Cортировка массива.
Доброго вечера. представлен массив ,не четные элементы данного массива нужно поместить в другой...

4
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
01.03.2017, 10:28 2
Алгоритмы сортировок
0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 9
01.03.2017, 12:45  [ТС] 3
можете помочь примерный код написать?)
0
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
01.03.2017, 14:12 4
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
int increment(long inc[], long size) 
{
    int p1, p2, p3, s;
    p1 = p2 = p3 = 1;
    s = -1;
    do 
    {
        if (++s % 2) 
        {
            inc[s] = 8*p1 - 6*p2 + 1;
        } 
        else 
        {
            inc[s] = 9*p1 - 9*p3 + 1;
            p2 *= 2;
            p3 *= 2;
        }
    p1 *= 2;
    } 
    while(3*inc[s] < size);  
 
    return s > 0 ? --s : 0;
}
 
template< class T >
void shellSort(T a[], long size) 
{
    long inc, i, j, seq[40];
    int s;
 
    s = increment(seq, size);
    while (s >= 0)
    {
         inc = seq[s--];
         for (i = inc; i < size; ++i) 
         {
             T temp = a[i];
             for (j = i-inc; (j >= 0) && (a[j] > temp); j -= inc)
                a[j + inc] = a[j];
             a[j] = temp;
         }
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
        int const k=10;  // Количество эл-ов массива
        int ind=0,flag=0,i=0,j=0,z=0;
        double S[k],temp=0; // 
        cout << "Please enter the elements of the array:"<<endl;
        for (i=0;i<k;i++) // В цикле задаём элементы массива
        {
            cin>>S[i];   
        }
 
        shellSort(S, k);
 
        //...
0
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
01.03.2017, 16:13 5
Лучший ответ Сообщение было отмечено naroto как решение

Решение

Читайте мою тему и берите мою сортировку.
Переделка сортировки Шелла.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2017, 16:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Cортировка пузырьком
Программа не то, что не правильно работает, а просто даже не запускается, сразу же &quot;прекращает...

Cортировка матриц
Здраствуйте! Задание такое: отсортировать по возрастанию 1 рядок и 2 столбец матрицы. Так понимаю...

Cортировка цифр
В данном натуральном числе переставить цифры таким образом, чтобы образовалось наименьшее число,...

Cортировка в файле
Подскажите как можно сделать сортировку в файле по алфавиту.Если я записываю данные файл например...


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

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

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