11 / 11 / 1
Регистрация: 08.12.2011
Сообщений: 148
1

"Быстрая" сортировка - выдаётся ошибка

09.06.2012, 18:44. Показов 704. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здарвствуйте, мне совсем недавно потребовалась "Быстрая" сортировка. Я взял алгоритм с wikibooks
но компилятор подчёркивает "swap()" и отказывается работает. Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void qs(int* s_arr, int first, int last)
{
    int i = first, j = last, x = s_arr[(first + last) / 2];
 
    do {
        while (s_arr[i] < x) i++;
        while (s_arr[j] > x) j--;
 
        if(i <= j) {
            if (i < j) swap(s_arr + i, s_arr + j);
            i++;
            j--;
        }
    } while (i <= j);
 
    if (i < last)
        qs(s_arr, i, last);
    if (first < j)
        qs(s_arr, first,j);
}
Помогите исправить ошибку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2012, 18:44
Ответы с готовыми решениями:

Быстрая сортировка - ошибка
Почему ошибка? #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;iostream&gt; using namespace...

Быстрая Сортировка quick-sort (ошибка в 40 строке) как исправить?
#include &lt;iostream&gt; #include &lt;vector&gt; using std::endl; using std::cout; using std::vector; ...

Быстрая сортировка: ошибка "Stack overflow"
Не понмаю, пишет STACK OVERFLOUDED!!!! не знаю в чем проблема. #include &lt;iostream&gt; #include...

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

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

7
33 / 33 / 3
Регистрация: 24.05.2012
Сообщений: 156
09.06.2012, 18:46 2
может стоит добавить using namespace std;

что конкретно пишет компилятор?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36587 / 20317 / 4218
Регистрация: 12.02.2012
Сообщений: 33,614
Записей в блоге: 13
09.06.2012, 18:59 3
Так swap - это функция, которую ты должен написать... Она обменивает значения аргументов. В C/С++ её нет.

C++
1
2
3
4
5
6
7
void swap(int *a, int *b)
{
   int c;
   c=*a;
   *a=*b;
   *b=c;
}
Примерно так...
0
33 / 33 / 3
Регистрация: 24.05.2012
Сообщений: 156
09.06.2012, 20:23 4
Цитата Сообщение от Catstail Посмотреть сообщение
Так swap - это функция, которую ты должен написать... Она обменивает значения аргументов. В C/С++ её нет.
да ладно, а это что такое?

http://www.cplusplus.com/reference/algorithm/swap/
1
10 / 10 / 2
Регистрация: 26.02.2012
Сообщений: 36
09.06.2012, 20:26 5
Цитата Сообщение от qfisher Посмотреть сообщение
да ладно, а это что такое?

http://www.cplusplus.com/reference/algorithm/swap/
Не показывай фишки сразу.)) Сделав сам функцию он поймет как она работает.)
1
11 / 11 / 1
Регистрация: 08.12.2011
Сообщений: 148
09.06.2012, 22:03  [ТС] 6
Я попрсил объяснить в чём ошибка.
0
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
09.06.2012, 22:10 7
Цитата Сообщение от Bllaaa Посмотреть сообщение
Я попрсил объяснить в чём ошибка.
Выше указали ошибку и целых два решения, одно другого краше.
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36587 / 20317 / 4218
Регистрация: 12.02.2012
Сообщений: 33,614
Записей в блоге: 13
09.06.2012, 22:27 8
Добавь вот это ПЕРЕД своей процедурой - все заработает.

C++
1
2
3
4
5
6
7
void swap(int *a, int *b)
{
   int c;
   c=*a;
   *a=*b;
   *b=c;
}
1
09.06.2012, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2012, 22:27
Помогаю со студенческими работами здесь

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

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

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

Сортировка Хоара / Быстрая сортировка
Доброго времени суток. Написал реализацию алгоритма быстрой сортировки. void SortHhoar(int...

Быстрая сортировка (сортировка Хоара)
Народ, нужен самый простой и понятный код на C++ без рекурсивной функции и без деление массива...

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


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

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

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