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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ знакочередующаяся последовательность http://www.cyberforum.ru/cpp-beginners/thread205023.html
Удалить из масива последнюю группу элементов, представляющих собой хнакочередующийся ряд
C++ Написать программу, котрая генерирует последовательность 10 случайных чисел Написать программу, котрая генерирует последовательность 10 случайных чисел в диапазоне от 1 до 10 и выводит эти числа на экран и вычисляет их среднее арифметическое http://www.cyberforum.ru/cpp-beginners/thread205019.html
C++ Сложение чисел из файлов
Здравствуйте. Помогите, пожалуйста, решить задание. Есть программа, создающая 5 файлов с числами: void main () { ofstream mf; char fstr; int i;
C++ Вычисление корней квадратного уравнения
1) Пишем функцию, которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний символы, затем следующие и т.д. Строка должна передаваться в функцию как аргумент. Напишите программу, которая должна принимать от пользователя строку (содержащую более одного слова), вызывать функцию, а затем выводить полученный результат. О_о 2) Пишем функцию...
C++ как записать в файл значение елементов масива структур? http://www.cyberforum.ru/cpp-beginners/thread205006.html
Записать в файл значение елементов масива структур и считать их из файла в другой масив.
C++ использование функций по обработке строк Приведено некоторое число. Вставить его перед каждым восклицательным знаком подробнее

Показать сообщение отдельно
Sxronjke
1 / 1 / 0
Регистрация: 17.10.2010
Сообщений: 54
06.12.2010, 23:47     Cортировка методом Шелла
Нужно выполнить сортировку 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 ();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru