Stooge sort | это... Что такое Stooge sort? (original) (raw)

Stooge sort (Сортировка по частям[1], Блуждающая сортировка[2]) — рекурсивный алгоритм сортировки с временной сложностью O(n^{\log_{1{,}5}{3}}) \approx O(n^{2.71}). Время работы алгоритма, таким образом, крайне большое по сравнению с эффективными алгоритмами сортировки, такими, как Сортировка слиянием.

Aлгоритм сортировки списка элементов заключается в следующем:

Примеры реализации

algorithm stoogesort(array L, i = 0, j = length(L)-1) if L[j] < L[i] then L[i] ↔ L[j] if j - i > 1 then t = (j - i + 1)/3 stoogesort(L, i , j-t) stoogesort(L, i+t, j ) stoogesort(L, i , j-t) return L

Пример на C

void stoogesort(int *item, int left,int right) { register int tmp, k; if(item[left]>item[right]) { tmp=item[left]; item[left]=item[right]; item[right]=tmp; } if((left+1)>=right) return;

k=(int)((right-left+1)/3); stoogesort(item,left, right-k); stoogesort(item, left+k, right); stoogesort(item, left, right-k); }

Примечания

  1. Кормен, Т., Лейзерсон, Ч., Ривест, Р. Алгоритмы: построение и анализ = Introduction to Algorithms / Пер. с англ. под ред. А. Шеня. — М.: МЦНМО, 2000. — 960 с. — ISBN 5-900916-37-5
  2. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4

Литература

Просмотр этого шаблона Алгоритмы сортировки
Теория СложностьО-нотацияОтношение порядкаТипы сортировки: УстойчиваяВнутренняяВнешняя
Алгоритмы Обменные: ПузырькомПеремешиваниемГномьяБыстраяРасчёскойВыбором: ВыборомПирамидальнаяВставками: ВставкамиШеллаДеревомСлиянием: СлияниемБез дополнительной памятиБез сравнений: ПодсчётомПоразряднаяБлочнаяГибридные: IntrosortTimsortПрочее: ТопологическаяСетиНепрактичные: BogosortStooge sortГлупаяБлинная