0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 18
1

Задача: Напишите сортировку массива по убыванию за O(max(a1, a2, ., an)

20.11.2019, 18:37. Показов 971. Ответов 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <bits/stdc++.h>
 
using namespace std;
 
void quickSort(int *numbers, int left, int right)
{
    int pivot;
    int l_hold = left;
    int r_hold = right;
    pivot = numbers[left];
    while (left < right)
    {
        while ((numbers[right] <= pivot) && (left < right))
            right--;
        if (left != right)
        {
            numbers[left] = numbers[right];
            left++;
        }
        while ((numbers[left] >= pivot) && (left < right))
            left++;
        if (left != right)
        {
            numbers[right] = numbers[left];
            right--;
        }
    }
    numbers[left] = pivot;
    pivot = left;
    left = l_hold;
    right = r_hold;
    if (left < pivot)
        quickSort(numbers, left, pivot - 1);
    if (right > pivot)
        quickSort(numbers, pivot + 1, right);
}
int main()
{
    int n;
    cin >> n;
    int a[n];
 
    for (int i = 0; i<n; i++)
        cin >> a[i];
 
    quickSort(a, 0, n-1);
 
    for (int i = 0; i<n; i++)
        printf("%d ", a[i]);
    printf("\n");
 
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2019, 18:37
Ответы с готовыми решениями:

Задача на сортировку списка по убыванию
Теперь надо создать функцию sorted2(data, key), способную сортировать вложенные списки, содержащие...

Выполнить сортировку массива по убыванию только элементов массива меньше 10 и больше -10
Сформировать массив 25 целых случайных чисел в диапазоне от минус 40 до 60. Напечатать его....

Выполнить сортировку массива по убыванию
С массивами у меня все очень и очень печально,огромная просьба помогите с задачкой &quot;Выполнить...

Добавить сортировку массива по возрастанию и убыванию
Нужно прикрутить вывод на экран не только в порядке возрастания, но и в порядке убывания. Буду...

2
21 / 13 / 8
Регистрация: 16.10.2019
Сообщений: 64
20.11.2019, 18:45 2
В вашем случае, чтобы задать размер массива с клавиатуры необходимо использовать динамический массив.

Вместо
C++
1
2
3
int n;
cin >> n;
int a[n];
это:
C++
1
2
3
int n;
cin >> n;
int* a = new int[n];
В самом коде вроде всё верно работает.
0
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
20.11.2019, 22:15 3
Чтоб решать за O(max(a1, a2, ..., an)) нужно использовать сортировку подсчетом.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2019, 22:15
Помогаю со студенческими работами здесь

Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших
Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три...

Выполнить сортировку массива по убыванию (или по возрастанию)
Выполнить сортировку массива по убыванию (или по возрастанию). Как оказалось, в книге Паскаль для...

Придумать задачу на сортировку массива по возрастанию и убыванию
придумать задачу на сортировку массива по возрастанию и убыванию и решить

Выполнить сортировку массива по убыванию (или по возрастанию)
Выполнить сортировку массива по убыванию (или по возрастанию). Была просьба сделать образец...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru