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

  • Автор темы kurzon
  • Дата начала
K

kurzon

Быстрая сортировка
Как рекурсивно вызвать?


Код:
static class QuickSorting
{
public static void Sort<T>(T[] array, Comparison<T> comparison)
{

int i = 0, j = array.Length; 		// поставить указатели на исходные места
T temp, p;

p = array[array.Length >> 1];		// центральный элемент

// процедура разделения
do
{
while (comparison(array[i],p)>0) i++;
while (comparison(array[j],p)>0) j--;

if (i <= j)
{
temp = array[i];
array[i] = array[j]; 
array[j] = temp;
i++; j--;
}
} while (i <= j);


// рекурсивные вызовы, если есть, что сортировать 
if (j > 0) Sort<T>(array, j);
if (array.Length > i) Sort<T>(array + i, array.Length - i);


}
}
Пожалуста исправте ошибки?
 
C

chm

А что нужно сделать? Если просто отсортировать элементы в массиве, то и сам массив, и выборки из датасетов, и листбокс изначально поддерживают сортировку.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!