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

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

Войти
Регистрация
Восстановить пароль
 
gorynech2
-4 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 32
#1

Сортировка методом Шелла, ошибки чуть ли не в каждой строке - C++

19.01.2012, 12:55. Просмотров 495. Ответов 9
Метки нет (Все метки)

Выдал полно ошибок

сортировки массива из 30 случайных значений:

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 <stdlib.h>
 
void shell_sort(int array[], int size) 
{
int temp, gap, i, exchange_occurred;
 
gap = size / 2;
 
do { 
 do {
 exchange_occurred = 0;
 
 for (i = 0; i < size - gap; i++) 
 if (array[i] > array[i + gap]) 
 {
 temp = array[i];
 array[i] = array[i + gap];
 array[i + gap] = temp;
 exchange_occurred = 1;
 }
 } while (exchange_occurred);
 } while (gap = gap / 2);
}
 
void main(void) 
{
int values[50], i;
 
for (i = 0; i < 50; i++) 
 values[i] = randO % 100;
shell_sort(values, 50);
 
for (i = 0; i < 50; i++) 
 printf("%d ", values[i]);
}
Примечание: Функция shell Jsort сортирует значения по возрастанию ощ меньшего к большему. Для сортировки массива в обратном порядке нужно просто изменить условие сравнения на if (array [i] < array [i + gap]).
0
Миниатюры
Сортировка методом Шелла, ошибки чуть ли не в каждой строке  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 12:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка методом Шелла, ошибки чуть ли не в каждой строке (C++):

Сортировка методом Шелла - C++
Не могу разобраться с сортировкой методом Шелла именно в двумерном массиве. Если, например, нам дан двумерный массив 10 на 10, а элементы...

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

Сортировка методом Шелла - C++
Ребят проверьте программу и исправьте ошибку и скиньте плиз скрин кода программы ну точней вывод ото черное окошко и саму программу без...

Сортировка методом шелла - C++
День добрый! Хочу разобраться с алгоритмом. Перепишете его пожалуйста без шаблонов, если я правильно понял что это такое. Спасибо. Вот...

Сортировка методом Шелла - C++
Помогите с написанием программы, которая реализует сортировку массива методом шелла...я только начинаю изучать с++,поэтому обращаюсь с...

Сортировка методом Шелла - C++
Помогите! Нужно написать код программы сортировки одномерного массива по убыванию методом Шелла. Код нужен на экзамен.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Высокий
242 / 242 / 59
Регистрация: 09.04.2011
Сообщений: 524
19.01.2012, 13:17 #2
Это код на C++. Естественно, если пытаться скомпилировать его как C# будут ошибки.

Добавлено через 11 минут
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
class Program
    {
        static int[] ShellSort(int[] current, bool ord)
        {
            int j;
            int power = current.Length;
            int step = power / 2;
            int tmp;
            while (step > 0)
            {
                for (int i = 0; i < (power - step); i++)
                {
                    j = i;
                    if (ord)
                    {
                        while ((j >= 0) && (current[j].CompareTo(current[j + step]) > 0))
                        {
                            tmp = current[j];
                            current[j] = current[j + step];
                            current[j + step] = tmp;
                            j--;
                        }
                    }
                    else
                    {
                        while ((j >= 0) && (current[j].CompareTo(current[j + step]) < 0))
                        {
                            tmp = current[j];
                            current[j] = current[j + step];
                            current[j + step] = tmp;
                            j--;
                        }
                    }
                }
                step = step / 2;
            }
            return current;
        }
 
        static void Main(string[] args)
        {
            const int n = 30;
            int[] array = new int[n];
            Random rand = new Random();
            Console.WriteLine("Массив: ");
            for (int i = 0; i < n; i++)
            {
                array[i] = rand.Next(100);
                Console.Write("{0,5}", array[i]);
            }
            array = ShellSort(array, true);
            Console.WriteLine("\n\nСортированный массив: ");
            foreach (int x in array) Console.Write("{0,5}", x);
            Console.ReadKey(true);
        }
    }
0
gorynech2
-4 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 32
19.01.2012, 13:21  [ТС] #3
Цитата Сообщение от Высокий Посмотреть сообщение
Это код на C++. Естественно, если пытаться скомпилировать его как C# будут ошибки.

Добавлено через 11 минут
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
class Program
    {
        static int[] ShellSort(int[] current, bool ord)
        {
            int j;
            int power = current.Length;
            int step = power / 2;
            int tmp;
            while (step > 0)
            {
                for (int i = 0; i < (power - step); i++)
                {
                    j = i;
                    if (ord)
                    {
                        while ((j >= 0) && (current[j].CompareTo(current[j + step]) > 0))
                        {
                            tmp = current[j];
                            current[j] = current[j + step];
                            current[j + step] = tmp;
                            j--;
                        }
                    }
                    else
                    {
                        while ((j >= 0) && (current[j].CompareTo(current[j + step]) < 0))
                        {
                            tmp = current[j];
                            current[j] = current[j + step];
                            current[j + step] = tmp;
                            j--;
                        }
                    }
                }
                step = step / 2;
            }
            return current;
        }
 
        static void Main(string[] args)
        {
            const int n = 30;
            int[] array = new int[n];
            Random rand = new Random();
            Console.WriteLine("Массив: ");
            for (int i = 0; i < n; i++)
            {
                array[i] = rand.Next(100);
                Console.Write("{0,5}", array[i]);
            }
            array = ShellSort(array, true);
            Console.WriteLine("\n\nСортированный массив: ");
            foreach (int x in array) Console.Write("{0,5}", x);
            Console.ReadKey(true);
        }
    }

это на Си???то тоже 7 ошибок выдало
0
Высокий
242 / 242 / 59
Регистрация: 09.04.2011
Сообщений: 524
19.01.2012, 13:24 #4
Вам на каком языке надо?
0
gorynech2
-4 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 32
19.01.2012, 13:25  [ТС] #5
Цитата Сообщение от Высокий Посмотреть сообщение
Вам на каком языке надо?
Просто Си,а не С++
0
Высокий
242 / 242 / 59
Регистрация: 09.04.2011
Сообщений: 524
19.01.2012, 13:27 #6
Тогда вы пишете не в тот раздел.
С/С++ для начинающих
А здесь раздел касается C#.
0
gorynech2
-4 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 32
19.01.2012, 13:31  [ТС] #7
Цитата Сообщение от Высокий Посмотреть сообщение
Тогда вы пишете не в тот раздел.
С/С++ для начинающих
А здесь раздел касается C#.
а для этой программы какие стандартные библиотеки понадобятся если в С++???
0
Высокий
242 / 242 / 59
Регистрация: 09.04.2011
Сообщений: 524
19.01.2012, 13:42 #8
Не знаю. Я пока не изучал С++
0
gorynech2
-4 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 32
19.01.2012, 13:44  [ТС] #9
Цитата Сообщение от Высокий Посмотреть сообщение
Не знаю. Я пока не изучал С++
все равно ошибки
0
Миниатюры
Сортировка методом Шелла, ошибки чуть ли не в каждой строке  
nio
19.01.2012, 13:57     Сортировка методом Шелла, ошибки чуть ли не в каждой строке
  #10
 Комментарий модератора 
перенесено в из C# в C/C++
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 13:57
Привет! Вот еще темы с ответами:

Сортировка методом Шелла - C++
Помогите найти пример сортировки методом Шелла. Только нужно чтоб массив был рандомный, а потом уже происходила сортировка. Заранее...

Сортировка методом Шелла по убыванию - C++
Помогите дописать программу в 6 кейсе, что бы там было сортировка методом Шелла по убыванию. #include &quot;stdafx.h&quot; //...

Сортировка массива методом Шелла - C++
добрый день нужна помощь, есть код #include &lt;iostream&gt; using namespace std; int main() { // razmer massiva, //...

Сортировка методом Шелла и другое на С++ - C++
Имеется целочисленный массив ak сщстоящий из 17 элементов: 10, -7, 3, 4, 111, -45, 0, 1234, 52, 77, 23, -675, 1, 20934, 12, -89, 555 1....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.01.2012, 13:57
Ответ Создать тему
Опции темы

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