Je algoritmus triedenia segmentov zavedený?
Je algoritmus triedenia segmentov zavedený?

Video: Je algoritmus triedenia segmentov zavedený?

Video: Je algoritmus triedenia segmentov zavedený?
Video: Introduction to HT16K33 4 Digit LED Seven Segment Display with Arduino 2024, November
Anonim

Nie, to nie je in- miesto triedenie algoritmus . Celá myšlienka je tým vstupom zoraďuje sami, keď sú presunutí do vedierka . V najhoršom z dobrých prípadov (sekvenčné hodnoty, ale bez opakovania) je potrebný ďalší priestor taký veľký ako pôvodné pole.

Ktoré triediace algoritmy sú takto zavedené?

Ako ďalší príklad mnohé triediace algoritmy preusporiadajú polia do zoradeného poradia na mieste, vrátane: bublinové triedenie , hrebeňové zoradenie, výberové zoradenie, triedenie vloženia , hepsort a Shell sort. Tieto algoritmy vyžadujú len niekoľko ukazovateľov, takže ich priestorová zložitosť je O(log n). Quicksort funguje priamo na údajoch, ktoré sa majú triediť.

Následne je otázkou, ako funguje algoritmus triedenia vedra? Vedro triediť , alebo bin sort , je a triediaci algoritmus že Tvorba rozdelením prvkov poľa do niekoľkých vedierka . Každý vedro je potom triedené jednotlivo, buď pomocou iného triediaci algoritmus alebo rekurzívnou aplikáciou algoritmus triedenia vedier . Nastavte pole pôvodne prázdnych " vedierka ".

Ako teda implementujete algoritmus triedenia segmentov?

  1. Predpokladajme, že vstupné pole je: Vytvorte pole s veľkosťou 10.
  2. Vložte prvky do vedier z poľa. Prvky sa vkladajú podľa rozsahu vedra.
  3. Prvky každého vedra sa triedia pomocou ľubovoľného zo stabilných triediacich algoritmov.
  4. Zhromažďujú sa prvky z každého vedra.

Kde sa používa triedenie vedier?

Vedro triediť je užitočné najmä vtedy, keď je vstup rovnomerne rozložený v rozsahu. Zvážte napríklad nasledujúci problém. Triediť veľký súbor čísel s pohyblivou rádovou čiarkou, ktoré sú v rozsahu od 0,0 do 1,0 a sú rovnomerne rozložené v celom rozsahu.

Odporúča: