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

Тема в разделе ".NET", создана пользователем kurzon, 29 окт 2007.

  1. kurzon

    kurzon Гость

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


    Код (Text):
    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);


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

    chm Гость

    А что нужно сделать? Если просто отсортировать элементы в массиве, то и сам массив, и выборки из датасетов, и листбокс изначально поддерживают сортировку.
     
Загрузка...
Похожие Темы - Быстрая сортировка
  1. Seriy1994
    Ответов:
    1
    Просмотров:
    1.367
  2. Dock1100
    Ответов:
    6
    Просмотров:
    5.129
  3. vera2014
    Ответов:
    0
    Просмотров:
    1.071
  4. Liori
    Ответов:
    2
    Просмотров:
    1.005
  5. FCDK
    Ответов:
    0
    Просмотров:
    1.264

Поделиться этой страницей