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

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

16.01.2017, 20:31. Просмотров 158. Ответов 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++):

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

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

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

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

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

Алгоритм сортировки
учитель попросил написать сортировку массива по возрастанию в общем виде ...

3
afront
1047 / 993 / 751
Регистрация: 29.02.2016
Сообщений: 3,185
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
1022 / 762 / 210
Регистрация: 28.07.2012
Сообщений: 2,118
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;iostream&gt;...

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

Алгоритм сортировки вставками
Привет, всем! В алгоритме непонятна одна строчка: #include&lt;iostream&gt;...

Комбинированый алгоритм сортировки
Нужно написать програму на языке С когда имеется алгоритм ! Задача в слудуещем:...


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

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

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