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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Jagon95
Сообщений: n/a
#1

Сортировка перемешиванием - C++

01.12.2011, 17:24. Просмотров 1563. Ответов 0
Метки нет (Все метки)

Доброго времени суток! Я написал программу, выполняющую шейкерную сортировку (перемешиванием) массива из случайных чисел на 30 тыс. элементов. В ходе написания встречались сложности, с которыми я, до сих пор, справлялся. И вот, когда, казалось бы, пофиксил все ошибки и запустил таки программу, выяснилось, что она не работает. В чём проблема, не знаю. Помогите.

PS
Данная программа должна высчитывать время, затрачиваемое на сортировку массивов от 1 тыс. до 30 тыс. элементов с шагом в 1000 элементов (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    int m[30000];
    int mc[30000];
    int i, x, y, n, j, k;
    time_t t1, t2;
 
    randomize();
 
    for (i=0; i<30000; i++)
    mc[i]=random(10000);
 
 
    for(j=1; j<31; j++)
    {
        n=j*1000;
 
 
    t1=time(NULL);
 
    for(i=0; i<n; i++)
    m[i]=mc[i];
//начало сортировки
    for (i=0; i<n/2; i++)
    {
        for (k=i; k<n-i-1; k++)
        {
        if (m[k]>m[k+1])
        {
            x=m[k];
            m[k]=m[k+1];
            m[k+1]=x;
        }
        }
        for (k=n-i-1; k>i; k--)
        {
        if (m[k]>m[k-1])
        {
            x=m[k];
            m[k]=m[k-1];
            m[k-1]=x;
        }
        }
    }
//конец сортировки
t2=time(NULL);
 
printf("%4d", t2-t1); //вывод времени
 
}
}
Добавлено через 11 минут
"Не работает" - сортировка не выполняется/выполняется неверно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 17:24     Сортировка перемешиванием
Посмотрите здесь:

Сортировка перемешиванием - Pascal
Массив из n&lt;10000 элементов заполняется случайными дробными числами от -10000 до 10000. Число n вводится в процессе работы программы....

Сортировка перемешиванием (Шейкерная) - Prolog
Приветствую! Помогите, пожалуйста, с реализацией сортировки перемешиванием (Шейкерной) по СТОИМОСТИ товаров в языке Prolog. Работаю в...

AS 3.0 Создание массива из объектов с перемешиванием - ActionScript
Подскажите насчет вот такой задачки с массивом: Надо сделать поле 9 на 9 из разноцветных квадратов (в сумме всего 81 квадрат 3-х цветов) ...

Сортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом ("пузырьковая" сортировка) - C#
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом массиве. Класс описать с помощью...

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками» - Pascal
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

Разработать программу сортировки: сортировка перестановкой, сортировка вставкой, быстрая сортировка - Prolog
Задание: Разработать программу сортировки: - сортировка перестановкой - сортировка вставкой - быстрая сортировка

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением - Pascal
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...

Сортировка массива целых чисел A(n) по убыванию(используя метод обменная сортировка) - Turbo Pascal
Помогите написать программу для сортировки массива целых чисел A(n) по убыванию(используя метод обменная сортировка). Или хотя бы без этого...

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

Быстрая сортировка, ситуация, при которой сортировка работает не корректно - Turbo Pascal
Procedure sort(m, l: Integer); Var i, j, x, w: Integer; Begin i := m; j := l; x := ar; Repeat While...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом? - C++
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким именно образом? #include &lt;iostream&gt; ...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива - C++
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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