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

Быстрая сортировка с итерационным циклом - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Новичок=)
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 16
04.01.2011, 12:13     Быстрая сортировка с итерационным циклом #1
Быстрая сортировка с итерационным циклом вычисления медианы. Для заданного интервала массива, в котором производится разделение, найти медиану обычным способом. Затем выбрать ту часть интервала между границей и медианой, где находится середина исходного интервала, и процесс повторить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 12:13     Быстрая сортировка с итерационным циклом
Посмотрите здесь:

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара) C++
C++ Быстрая сортировка
C++ Быстрая сортировка
Быстрая сортировка C++
C++ Быстрая сортировка
C++ Быстрая сортировка
Быстрая сортировка (сортировка методом Хоара) C++
C++ Сортировка Хоара / Быстрая сортировка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
04.01.2011, 17:20     Быстрая сортировка с итерационным циклом #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
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);
}
Yandex
Объявления
04.01.2011, 17:20     Быстрая сортировка с итерационным циклом
Ответ Создать тему
Опции темы

Текущее время: 17:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru