Je algoritmus třídění segmentu na místě?
Je algoritmus třídění segmentu na místě?

Video: Je algoritmus třídění segmentu na místě?

Video: Je algoritmus třídění segmentu na místě?
Video: 15 Sorting Algorithms in 6 Minutes 2024, Prosinec
Anonim

Ne, to není in- místo třídění algoritmus . Celá myšlenka je ten vstup třídí sami, když jsou přesunuti do kbelíky . V nejhorším z dobrých případů (sekvenční hodnoty, ale žádné opakování) je další potřebný prostor stejně velký jako původní pole.

Které třídicí algoritmy jsou tímto způsobem zavedeny?

Jako další příklad mnoho třídicích algoritmů přeskupuje pole do seřazeného pořadí na místě, včetně: bublinový druh , hřebenové řazení, výběrové řazení, řazení vložení , heapsort a Shell sort. Tyto algoritmy vyžadují pouze několik ukazatelů, takže jejich prostorová složitost je O(log n). Quicksort funguje přímo na datech, která mají být tříděna.

Následně je otázkou, jak funguje algoritmus třídění bucket? Třídění kbelíků nebo bin sort , je třídicí algoritmus že funguje rozdělením prvků pole do několika kbelíky . Každý Kbelík je pak seřazeno jednotlivě, buď pomocí jiného třídicí algoritmus nebo rekurzivní aplikací algoritmus třídění lopatek . Nastavte pole původně prázdných " kbelíky ".

Jak tedy implementujete algoritmus třídění segmentů?

  1. Předpokládejme, že vstupní pole je: Vytvořte pole o velikosti 10.
  2. Vložte prvky do segmentů z pole. Prvky se vkládají podle rozsahu lopaty.
  3. Prvky každého segmentu jsou tříděny pomocí libovolného ze stabilních třídicích algoritmů.
  4. Shromažďují se prvky z každého kbelíku.

Kde se používá bucket sort?

Třídění kbelíků je užitečné hlavně tehdy, když je vstup rovnoměrně rozložen v určitém rozsahu. Zvažte například následující problém. Seřadit velká sada čísel s pohyblivou řádovou čárkou, která jsou v rozsahu od 0,0 do 1,0 a jsou rovnoměrně rozložena v celém rozsahu.

Doporučuje: