Форум программистов, компьютерный форум CyberForum.ru

Cортировка методом Шелла - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Sxronjke
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 54
06.12.2010, 23:47     Cортировка методом Шелла #1
Нужно выполнить сортировку 5-видов, 4 нормально работают, а 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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
 
using namespace std;
 
//void Sort_by_direct_exchange ( int *A, int n ){
//     int b;
//     for ( int j = 0; j < n; j++ )
//          for ( int i = 0; i < n; i++ )
//               if ( A [i-1] > A[i] ){
//                    b = A[i];
//                    A[i] = A[i-1];
//                    A[i-1] = b;
//               }
//     for ( int i = 0; i < n; i++ )
//          cout << A[i] << endl;
//}
 
//void Sorting_by_a_direct_choice ( int *A, int n ){
//     int f = 0;
//     int m = n;
//     int a = 0;
//     for ( int j = 0; j < n; j++ ){
//          for ( int i = 0; i < m; i++ )
//               if ( a < A[i] ){
//                    a = A[i];
//                    f = i;
//               }                    
//          a = A[m];
//          A[m] = A[f];
//          A[f] = a;
//          m--;
//     }
//     for ( int i = 0; i < n; i++ )
//          cout << A[i] << endl;
//}
//void Sorting_by_direct_inclusions ( int *A, int n ){
//     int b;
//     int m = 0;
//     for ( int j = 0; j < n; j++ ){
//          for ( int i = 0; i < m; i++ )
//               if ( A[m] < A [i] )
//                    for ( int z = i;  z < m; z++ ){
//                         b = A[z];
//                         A[z] = A[m];
//                         A[m] = b;
//                    }
//          m++;
//     }
//     for ( int i = 0; i < n; i++ )
//          cout << A[i] << endl;
//}
 
void Sort_by_Shell ( int *A, int n ){
     int h = n/2;
     int a;
     int c = 2;
     while ( h >= 1 ){
          for ( int i = 0; i < h; i++ )
               for ( int j = 0; j < c; j++ )
                    if ( A[j] > A[h+j] ){
                         a = A[h+j];
                         A[h+j] = A[j];
                         A[j] = a;
               }
          c = c * 2;
          h = h/2;
     }
     for ( int i = 0; i < n; i++ )
          cout << A[i] << endl;
}
 
//void Linear_sorting ( int *A, int n ){
//     int a, B[100];
//     for ( int i = 0;i < 100; i++ )
//          B[i] = 0;
//     for ( int i = 0; i < n; i++ )
//          B[A[i]]++;
//     a = 0;
//     for ( int i = 0; i < 100; i++ )
//          for ( int j = 0; j < B[i]; j++ )
//               A[a++] = i;
//     for ( int i = 0; i < n; i++ )
//          cout << A[i] << endl;
//}
 
 
void main (){
     int A[100], n;
     cout << "Input number ";
     cin >> n;
     cout << "\n";
     for ( int i = 0; i < n; i++ )
          A[i] = + rand()%100;
     //for ( int i = 0; i < n; i++ )
     //     cout << A[i] << endl;
     //Sort_by_direct_exchange ( A, n );
     //Sorting_by_a_direct_choice ( A, n );
     //Sorting_by_direct_inclusions ( A, n );
     Sort_by_Shell ( A, n );
     //Linear_sorting ( A, n );
 
     getch ();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 23:47     Cортировка методом Шелла
Посмотрите здесь:

Сортировка методом Шелла C++
Сортировка методом шелла C++
Отсортировать массив методом Шелла C++
C++ Сортировка методом Шелла
Комментарии к сортировке методом Шелла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.12.2010, 23:55     Cортировка методом Шелла #2
С++ FAQ
Sxronjke
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 54
07.12.2010, 15:42  [ТС]     Cортировка методом Шелла #3
это я всё читал) ты мне лучше в самой программе помоги исправить ошибку)

Добавлено через 15 часов 41 минуту
народ, ну чё никто не знает?
vx5
 Аватар для vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
07.12.2010, 15:50     Cортировка методом Шелла #4
http://ru.wikibooks.org/wiki/Примеры...ртировки_Шелла
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.12.2010, 15:52     Cортировка методом Шелла #5
Sxronjke, http://www.algolist.manual.ru/sort/shell_sort.php - почитай, надеюсь найдеш ошыбку в своем коде.
Yandex
Объявления
07.12.2010, 15:52     Cортировка методом Шелла
Ответ Создать тему
Опции темы

Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru