Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
mOops
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 25
1

Не работает алгоритм сортировки

16.01.2017, 20:31. Просмотров 764. Ответов 3
Метки нет (Все метки)

Не работает алгоритм сортировки
Ни при заполнении псевдослучайными числами,ни при заранее заданных.
Подскажите пожалуйста, в чем ошибка?

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
void Qsort(T*   Arr, long N)
{   
        long L = 0, 
        R = N-1;    
        T Med = Arr[L + (R-L)/2], temp;
 
    while (L<=R)
    {
        while(Arr[L] < Med) L++;
        while(Arr[R] > Med) R--;
 
        if(L <= R)
    {
            temp = Arr[L];
            Arr[L] = Arr[R];
            Arr[R] = temp;
            L++; R--;
        }
    }
    if(N > L)   Qsort(Arr+L, N-L);
    if(R > 0)   Qsort(Arr, R);
    
}
void Print(int* Arr, long N)
{
    for(int i(0); i < N; i++)
     cout << Arr[i] << ' ';
    cout << endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    
    const long N(20);
 
//  cout << "Введите размер массива:  " << endl;
//  cin >> N;
    int A[N] = {112,2,3,21,19,8,4,54,6,56,111,22,312,40,1,222,1111,31,41,33};
 
    /*srand(time(NULL));
    for(int i(0); i < N; i++)
    {
        A[i] = rand()%100;
    }
*/
    cout << "Исходный массив:  ";
    Print(A, N);
 
    Qsort(A, N);
 
    cout << "Отсортированный массив:  ";
    Print(A, N);
    
    //delete [] A;
 
    _getch();
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2017, 20:31
Ответы с готовыми решениями:

Не работает алгоритм сортировки динамического массива
Доброе время суток. Пытался написать сортировку к двумерному динамическому массиву (по принципу...

Алгоритм быстрой сортировки не работает с большим количеством чисел
Требовалось написать программу с алгоритмами сортировки, затем сравнить эти алгоритмы (но проблема...

Алгоритм сортировки
Здравствуйте, подскажите пожалуйста какой алгоритм можно использовать при решении такой задачи:...

Алгоритм сортировки
пацаны ребята помогите, реализовал два алгоритма на C++, алгоритм сортировки пирамидальный(кучей) и...

Алгоритм сортировки
Дан одномерный масив. мне в нем нужно отсортировать по возростанию только те числа масива которые...

3
afront
1050 / 997 / 752
Регистрация: 29.02.2016
Сообщений: 3,187
17.01.2017, 15:24 2
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
void qs(int* x, int left, int right)
{
    int i, j;
    int pivot, temp;
 
    i = left;
    j = right;
    pivot = x[(left + right) / 2];
 
    do
    {
        while ((x[i] < pivot) && (i < right)) i++;
        while ((pivot < x[j]) && (j > left)) j--;
 
        if (i <= j)
        {
            temp = x[i];
            x[i] = x[j];
            x[j] = temp;
            i++; j--;
        }
    } while (i <= j);
 
    if (left < j) qs(x, left, j);
    if (i < right) qs(x, i, right);
}
 
void Qsort(int* x, long n)
{
    qs(x, 0, n - 1);
}
0
mOops
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 25
17.01.2017, 15:46  [ТС] 3
Вопрос заключается в чем ошибка, а не как по-другому реализовать алгоритм.
Так как вы показали я знаю. Нужно именно как у меня.
0
nonedark2008
1053 / 787 / 220
Регистрация: 28.07.2012
Сообщений: 2,199
17.01.2017, 16:49 4
Лучший ответ Сообщение было отмечено mOops как решение

Решение

Цитата Сообщение от mOops Посмотреть сообщение
Вопрос заключается в чем ошибка
C++
1
2
if(N - 1 > L) Qsort(Arr+L, N-L);
if(R > 1) Qsort(Arr, R + 1);
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2017, 16:49

Алгоритм сортировки
учитель попросил написать сортировку массива по возрастанию в общем виде #include &lt;stdio.h&gt;...

Не алгоритм быстрой сортировки
Просто как подключить эту функцию Не работаеееет #include&lt;iostream&gt; #include&lt;iomanip&gt; #include...

Алгоритм быстрой сортировки
Написать программу, реализующую алгоритм быстрой сортировки(рекурсивный) для массива целых чисел.


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

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

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