logo

Rychlé řazení vs. Sloučit řazení

Rychlé řazení je interní algoritmus, který je založen na strategii rozděl a panuj. V tomhle:

  • Pole prvků se rozděluje na části opakovaně, dokud není možné je dále dělit.
  • Je také známý jako partition exchange sort .
  • K rozdělení prvků používá klíčový prvek (pivot).
  • Jeden levý oddíl obsahuje všechny prvky, které jsou menší než pivot a jeden pravý oddíl obsahuje všechny prvky, které jsou větší než klíčový prvek.

rychlé třídění Sloučit třídění je externí algoritmus založený na strategii rozděl a panuj. V tomhle:

  • Prvky jsou znovu a znovu rozděleny do dvou dílčích polí (n/2), dokud nezbude pouze jeden prvek.
  • Sloučit řazení používá další úložiště pro řazení pomocného pole.
  • Třídění sloučení používá tři pole, kde dvě se používají pro uložení každé poloviny a třetí externí se používá k uložení konečného setříděného seznamu sloučením dalších dvou a každé pole se pak třídí rekurzivně.
  • Nakonec jsou všechna podpole sloučena, aby bylo dosaženo velikosti „n“ prvku pole.

Výukový program sloučení-třídění



Rychlé řazení vs. Sloučit řazení

    Rozdělení prvků v poli : Při slučovacím řazení je pole rozděleno pouze na 2 poloviny (tj. n/2). zatímco v případě rychlého řazení je pole rozděleno do libovolného poměru. Neexistuje žádné nucení rozdělovat pole prvků na stejné části v rychlém řazení. Složitost nejhoršího případu: Složitost nejhoršího případu rychlého řazení je O(n^2), protože je potřeba mnoho srovnání v nejhorším stavu. zatímco při slučovacím řazení má nejhorší případ a průměrný případ stejnou složitost O(n log n). Použití s ​​datovými sadami: Sloučené řazení může dobře fungovat na jakémkoli typu datových sad bez ohledu na jejich velikost (buď velké nebo malé). zatímco rychlé řazení nemůže dobře fungovat s velkými datovými sadami. Požadavek na další úložný prostor: Třídění sloučení není na místě, protože vyžaduje další paměťový prostor pro uložení pomocných polí. vzhledem k tomu, že rychlé řazení je na místě, protože nevyžaduje žádné další úložiště. Efektivita: Slučovací třídění je efektivnější a funguje rychleji než rychlé třídění v případě větší velikosti pole nebo datových sad. zatímco Rychlé řazení je efektivnější a funguje rychleji než slučovací řazení v případě menší velikosti pole nebo datových sad. Metoda třídění: Rychlé třídění je metoda vnitřního třídění, při které jsou data tříděna v hlavní paměti. vzhledem k tomu, že slučovací třídění je metoda externího třídění, ve které data, která mají být tříděna, nemohou být uložena v paměti a pro třídění potřebuje pomocnou paměť. Stabilita: Řazení sloučení je stabilní, protože dva prvky se stejnou hodnotou se objevují ve stejném pořadí v seřazeném výstupu, jako byly ve vstupním netříděném poli. zatímco Rychlé řazení je v tomto scénáři nestabilní. Ale může být stabilní pomocí některých změn v kódu. Preferováno pro : Pro pole je preferováno rychlé řazení. zatímco řazení Merge je preferováno pro propojené seznamy. Referenční lokalita: Quicksort vykazuje dobrou lokalizaci mezipaměti a to umožňuje rychlé třídění rychlejší než slučovací třídění (v mnoha případech jako v prostředí virtuální paměti).
Základ pro srovnání Rychlé řazení Sloučit třídění
Rozdělení prvků v poli Rozdělení pole prvků je v jakémkoli poměru, nemusí být nutně rozděleno na polovinu. Při slučovacím řazení je pole rozděleno pouze na 2 poloviny (tj. n/2).
Složitost nejhoršího případu O(n^2) O(nlogn)
Funguje dobře na Funguje dobře na menším poli Funguje dobře na libovolné velikosti pole
Rychlost provedení Funguje rychleji než jiné třídicí algoritmy pro malé soubory dat, jako je výběrové třídění atd Má konzistentní rychlost pro jakoukoli velikost dat
Požadavek na další úložný prostor Méně (na místě) Více (není na místě)
Účinnost Neefektivní pro větší pole Efektivnější
Způsob řazení Vnitřní Externí
Stabilita Nestabilní Stabilní
Preferováno pro pro Arrays pro propojené seznamy
Referenční lokalita dobrý chudý
Hlavní práce Hlavní prací je rozdělit pole na dvě dílčí pole před jejich rekurzivním řazením. Hlavní práce spočívá ve spojení dvou dílčích polí po jejich rekurzivním třídění.
Rozdělení pole Rozdělení pole na dílčí pole může nebo nemusí být vyvážené, protože pole je rozděleno kolem pivotu. Rozdělení pole na podpole je vždy vyvážené, protože rozděluje pole přesně uprostřed.
Metoda Rychlé třídění je metoda třídění na místě. Sloučit třídění není na místě.
Sloučení Quicksort nepotřebuje explicitní sloučení setříděných dílčích polí; spíše se dílčí pole během dělení správně přeskupila. Merge sort provádí explicitní sloučení setříděných dílčích polí.
Prostor Quicksort nevyžaduje další prostor v poli. Pro slučování setříděných podpolí potřebuje dočasné pole o velikosti rovnající se počtu vstupních prvků.