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

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

Войти
Регистрация
Восстановить пароль
 
mOops
0 / 0 / 0
Регистрация: 09.01.2017
Сообщений: 25
#1

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

16.01.2017, 20:31. Просмотров 141. Ответов 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++
Доброе время суток. Пытался написать сортировку к двумерному динамическому массиву (по принципу пузырька, кода я не видели не знаю, все...

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

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

Алгоритм сортировки - C++
учитель попросил написать сортировку массива по возрастанию в общем виде #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { ...

Алгоритм сортировки - C++
Здравствуйте, подскажите пожалуйста какой алгоритм можно использовать при решении такой задачи: Дана строка char * из букв и цифр...

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

3
afront
1033 / 979 / 370
Регистрация: 29.02.2016
Сообщений: 3,176
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
964 / 704 / 157
Регистрация: 28.07.2012
Сообщений: 1,931
17.01.2017, 16:49 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от mOops Посмотреть сообщение
Вопрос заключается в чем ошибка
C++
1
2
if(N - 1 > L) Qsort(Arr+L, N-L);
if(R > 1) Qsort(Arr, R + 1);
1
17.01.2017, 16:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2017, 16:49
Привет! Вот еще темы с ответами:

Алгоритм сортировки в файле - C++
Никак не могу придумать как отсортировать массив значений. Есть файл, в котором находятся данные типа (вершины прямоугольник) : 20 20 69...

Алгоритм пузырьковой сортировки - C++
#include&lt;iostream.h&gt; #define SIZE 5 void bsort (int iArray, int n); int main() { char ch; int ii; int iArray ; for(ii =...

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

Реализовать алгоритм сортировки - C++
На рисунке расположены, все возможные компоненты имеющие свойства x,y. Размер рабочей части 8x8, но может быть и больше. Задача такая:...


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

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

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