Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Rabbit13245
28 / 28 / 2
Регистрация: 21.04.2012
Сообщений: 282
#1

Быстрая сортировка - C++

05.12.2012, 22:24. Просмотров 371. Ответов 5
Метки нет (Все метки)

Воспользовался готовым решением для сортировки: Алгоритмы сортировок

в итоге если беру массив:
C++
1
int A[10] = {2,1,4,5,8,7,1,5,2,9}
то сортировка не работает. Подскажите где и что не так.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 22:24     Быстрая сортировка
Посмотрите здесь:

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

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

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

Быстрая сортировка - C++
void quickSortR(int *first,int *last) { // На входе - массив a, a - его последний элемент. int *i = first, *j = last; ...

Быстрая сортировка - C++
Дошёл до темы быстрой сортировки, набрал код, начал компилировать. Что-то странно, всё написано правильно, уже проверял, 8 раз, программа...

Быстрая сортировка - C++
Читал о быстрой сортировки смысл понятен но не могу понять некоторые моменты. Каким образом работают два последних условия? Они работают...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
05.12.2012, 22:28     Быстрая сортировка #2
Вы можете воспользоваться ещё одним готовым решением из языка C++ - функция qsort
Rabbit13245
28 / 28 / 2
Регистрация: 21.04.2012
Сообщений: 282
05.12.2012, 22:31  [ТС]     Быстрая сортировка #3
.::.DIMA.::., спасибо, но мне хотелось бы понять почему на указанном массиве предложенный код не работает
prazuber
109 / 109 / 3
Регистрация: 29.04.2010
Сообщений: 240
05.12.2012, 22:35     Быстрая сортировка #4
Rabbit13245, а откуда мы знаем, какой алгоритм вы использовали и как? Покажите весь ваш код.


.::.DIMA.::., qsort это не С++, это С С++ это std::sort
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
05.12.2012, 22:36     Быстрая сортировка #5
так покажи свою прогу то!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2012, 22:46     Быстрая сортировка
Еще ссылки по теме:

Быстрая сортировка - C++
Здравствуйте уважаемые форумчане киберфорума. Имеется проблеммка с задачкой, могли бы вы помочь мне ее решить? Имеем двумерный...

Быстрая сортировка - C++
Здорова господа! Есть задачка: дан алгоритм быстрой сортировки. ну вообщем я ее cделал но ток без указателей. А задачка находиться в...

Быстрая сортировка - C++
Объясните в чем подвох? Выводит какое большое отрицательное числа %) #include <iostream> #include <conio.h> #include <stdlib.h> //...

Быстрая сортировка - C++
#include <iostream> #include <vector> #include <stdlib.h> #include <stdio.h> using namespace std; int comp(const int...


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

Или воспользуйтесь поиском по форуму:
Rabbit13245
28 / 28 / 2
Регистрация: 21.04.2012
Сообщений: 282
05.12.2012, 22:46  [ТС]     Быстрая сортировка #6
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
template<class T>
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.
 
  long i = 0, j = N;        // поставить указатели на исходные места
  T temp, p;
 
  p = a[ N>>1 ];        // центральный элемент
 
  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) quickSortR(a, j);
  if ( N > i ) quickSortR(a+i, N-i);
}
вот он)

Добавлено через 9 минут
Так все. к вечеру все плохо. Подавал на вход размерность массива равную 10. А написано-то для последнего элемента. То есть 9.

Прошу прощения. Всем спасибо
Yandex
Объявления
05.12.2012, 22:46     Быстрая сортировка
Ответ Создать тему
Опции темы

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