Как работает алгоритм быстрой сортировки?

Можете подробно описать принцип работы данного алгоритма ?
int partition (int[] array, int start, int end) 
   {
       int marker = start;
       for ( int i = start; i <= end; i++ ) 
       {
           if ( array[i] < array[end] ) 
           {
               int temp = array[marker]; // swap
               array[marker] = array[i];
               array[i] = temp;
               marker += 1;
           }
       }
       return marker - 1;
   }

   void quicksort (int[] array, int start, int end)
   {
       if ( start >= end ) 
       {
           return;
       }
       int pivot = partition (array, start, end);
       quicksort (array, start, pivot-1);
       quicksort (array, pivot+1, end);
   }
  • Вопрос задан
  • 1046 просмотров
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
Выбирается случайный элемент на сортируемой части массива, все элементы меньше него переносятся в левую часть, остальные в правую. Для каждой из частей вызывается аналогичный алгоритм. Дьявол в деталях :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы