Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для tofers
30 / 30 / 10
Регистрация: 07.10.2011
Сообщений: 204

Быстрая сортировка

31.03.2012, 11:56. Показов 1093. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните в чем подвох? Выводит какое большое отрицательное числа %)
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 <iostream>
#include <conio.h>
#include <stdlib.h> // Отсюда берём rand()
#include <time.h> // Здесь находится time()
#include <string>
 
using namespace std;
 
void QuickSort(int count, int* sArr) 
{
    int i = 0, j = count;
    long  x = sArr[count >> 1 ];
 
    do {
        while (sArr[i] < x) i++;
        while (sArr[j] > x) j--;
 
        if(i <=  j) {
           x = sArr[i]; 
           sArr[i] = sArr[j]; 
           sArr[j] = x;
            i++;
            j--;
        }
    } while (i <= j);
 
    if (i < 0)
        QuickSort(count, sArr);
    if (count < j)
        QuickSort(count, sArr);
}
 
void Print (int count, int* mas) 
{
    for (int i = 0; i < count; i++)
    {
        cout << mas[i] << " ";
    }
    cout << "\n";
}
void main()
{
    setlocale(LC_ALL, "Russian");
    const int count = 100;
    int Arr[count]; 
 
    for( int x = 0; x < count; x++)
        Arr[x] = rand()%200 + 1;
    cout << "До сортировки: ";
    Print(count, Arr);
    QuickSort(count, Arr);
    cout << "\nПосле сортировки: ";
    Print(count, Arr);
    _getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2012, 11:56
Ответы с готовыми решениями:

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

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

Сортировка Слиянием vs Быстрая Сортировка - что лучше
Народ, помогите разобраться какой из методов сортировки лучше &quot;Сортировка Слиянием&quot; или &quot;Быстрая Сортировка&quot;: у быстрой...

9
 Аватар для Taras_Z
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 12:07
Алгоритмы сортировок
0
 Аватар для tofers
30 / 30 / 10
Регистрация: 07.10.2011
Сообщений: 204
31.03.2012, 12:21  [ТС]
Taras_Z, Я это читал уже. Просто выводит постоянно -8500......

Как от этого избавиться. Использовав массив
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 12:29
Цитата Сообщение от tofers Посмотреть сообщение
Taras_Z, Я это читал уже. Просто выводит постоянно -8500......

Как от этого избавиться. Использовав массив
C++
1
2
3
4
5
6
7
        if(i <=  j) {
           x = sArr[i];
           sArr[i] = sArr[j];
           sArr[j] = x;
            i++;
            j--;
        }
Используй не х, а новую переменную

Добавлено через 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
    void QuickSort(int count, int* sArr)
    {
        int i = 0, j = count;
        long  x = sArr[count >> 1 ];
        long y;
     
        do {
            while (sArr[i] < x) i++;
            while (sArr[j] > x) j--;
     
            if(i <=  j) {
               y = sArr[i];
               sArr[i] = sArr[j];
               sArr[j] = y;
                i++;
                j--;
            }
        } while (i <= j);
     
        if (j > 0)
            QuickSort(j, sArr);
        if (count > i)
            QuickSort(count-i, sArr+i);
    }
0
 Аватар для tofers
30 / 30 / 10
Регистрация: 07.10.2011
Сообщений: 204
31.03.2012, 12:50  [ТС]
Nekto, Не помогло При трасировке в sArr[j] -85...
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 13:15
Цитата Сообщение от tofers Посмотреть сообщение
Nekto, Не помогло При трасировке в sArr[j] -85...
У меня с этим кодом -
Code
1
2
3
4
5
6
7
8
9
10
11
До сортировки: 42 68 135 101 170 125 79 159 163 65 106 146 82 28 162 92 196 143
28 37 192 5 103 154 93 183 22 117 119 96 48 127 172 139 70 113 68 100 36 95 104
12 123 134 74 65 142 112 54 69 148 45 63 158 38 60 124 142 130 179 117 36 191 43
 89 107 41 143 65 49 47 6 91 130 171 151 7 102 194 149 30 24 85 155 157 41 167 1
77 132 109 145 40 27 124 138 139 119 83 130 142
 
После сортировки: 5 6 7 12 22 24 27 28 28 30 36 36 37 38 40 41 41 42 43 45 47 48
 49 54 60 63 65 65 65 68 68 69 70 74 79 82 83 85 89 91 92 93 95 96 100 101 102 1
03 104 106 107 109 112 113 117 117 119 119 120 123 124 124 125 127 130 130 130 1
32 134 135 138 139 139 142 142 142 143 143 145 146 148 149 151 154 155 157 158 1
59 162 163 167 170 171 172 177 179 183 191 192 194
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
    #include <iostream>
    #include <conio.h>
    #include <stdlib.h> // Îòñþäà áåð¸ì rand()
    #include <time.h> // Çäåñü íàõîäèòñÿ time()
    #include <string>
     
    using namespace std;
     
    void QuickSort(int count, int* sArr)
    {
        int i = 0, j = count;
        long  x = sArr[count >> 1 ];
        long y;
     
        do {
            while (sArr[i] < x) i++;
            while (sArr[j] > x) j--;
     
            if(i <=  j) {
               y = sArr[i];
               sArr[i] = sArr[j];
               sArr[j] = y;
                i++;
                j--;
            }
        } while (i <= j);
     
        if (j > 0)
            QuickSort(j, sArr);
        if (count > i)
            QuickSort(count-i, sArr+i);
    }
     
    void Print (int count, int* mas)
    {
        for (int i = 0; i < count; i++)
        {
            cout << mas[i] << " ";
        }
        cout << "\n";
    }
    int main()
    {
        setlocale(LC_ALL, "Russian");
        const int count = 100;
        int Arr[count];
     
        for( int x = 0; x < count; x++)
            Arr[x] = rand()%200 + 1;
        cout << "Äî ñîðòèðîâêè: ";
        Print(count, Arr);
        QuickSort(count, Arr);
        cout << "\nÏîñëå ñîðòèðîâêè: ";
        Print(count, Arr);
        _getch();
        return 0;
    }
0
 Аватар для Taras_Z
102 / 86 / 5
Регистрация: 27.10.2010
Сообщений: 534
Записей в блоге: 2
31.03.2012, 13:23
а у меня нет

C++
1
2
3
4
5
6
 
До сортировки: 42 68 135 101 170 125 79 159 163 65 106 146 82 28 162 92 196 143 28 37 192 5 103 154 93 183 22 117 119 96 48 127 172 139 70 113 68 100 36 95 104 12 123 134 74 65 142 112 54 69 148 45 63 158 38 60 124 142 130 179 117 36 191 43 89 107 41 143 65 49 47 6 91 130 171 151 7 102 194 149 30 24
 85 155 157 41 167 177 132 109 145 40 27 124 138 139 119 83 130 142
 
После сортировки: -858993460 5 6 7 12 22 24 27 28 28 30 36 36 37 38 40 41 41 42 43 45 47 48 49 54 60 63 65 65 65 68 68 69 70 74 79 82 83 85 89 91 92 93 95 96 100 101 102 103 104 106 107 109 112 113 117 117 119 119 123 124 124 125 127 130 130 130 132 134 135 138 139 139 142 142 142 143 143 145 146 14
8 149 151 154 155 157 158 159 162 163 167 170 171 172 177 179 183 191 192 194
0
 Аватар для tofers
30 / 30 / 10
Регистрация: 07.10.2011
Сообщений: 204
31.03.2012, 14:14  [ТС]
У меня Студия 2008.
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 14:43
Цитата Сообщение от tofers Посмотреть сообщение
У меня Студия 2008.
Dev-C++

Добавлено через 13 минут
Нашел ошибку. в main() вместо
C++
1
    QuickSort(count, Arr);
C++
1
    QuickSort(count-1, Arr);
1
 Аватар для tofers
30 / 30 / 10
Регистрация: 07.10.2011
Сообщений: 204
31.03.2012, 15:22  [ТС]
Nekto, Спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2012, 15:22
Помогаю со студенческими работами здесь

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара)
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода сортировки на C++. В коде есть следующий...

Быстрая сортировка (сортировка методом Хоара)
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

Сортировка расчёской и быстрая сортировка
В файле in.txt записана последовательность целых чисел. Заданными методами отсортировать числа и записать в файлы out1.txt и out2.txt....

Сортировка Хоара / Быстрая сортировка
Доброго времени суток. Написал реализацию алгоритма быстрой сортировки. void SortHhoar(int *arr,int f,int l)//Хоара { int mid = (f...

Быстрая сортировка
привет, был бы очень благодарен, если кто поможет, нашел в интернете код Быстрой сортировки (нужно написать именно самому) на с++,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru