Radix sort (přihrádkové řazení) je stabilní řadící algoritmus používaný především k řazení řetězců totožné délky.

Princip

Princip radix sortu vychází přímo z definice stabilního řazení – řadicí algoritmus je stabilní, pokud zachovává pořadí klíčů, které mají stejnou hodnotu (tj. pokud stuktury seřadíme napřed dle klíče A, poté podle klíče B, tak jsou seřazeny podle B, a kde jsou si hodnoty B rovny, tam jsou struktury v pořadí daném klíčem A).

Radix sort řadí řetězce totožné délky tak, že nad každým znakem od konce těchto řetězců zavolá stabilní řadicí algoritmus (seřadí řetězce podle posledního znaku, poté podle předposledního...). Po n-tém průchodu jsou řetězce seřazeny dle všech pozic znaků.

Asymptotická složitost

Asymptotická složitost radix sortu je O(m \\cdot C(n)), kde m je počet znaků řazených řetězců, n je velikost dat a C(n) je složitost vnitřního stabilního řadícího algoritmu (za tímto účelem je často použit counting sort).


Kód

 function radixSort(String s)
     for i in (s.length - 1)  -> 0 do
         stableSort(s[i])
         
     /**
      * Radix sort - prihradkove razeni 
      * Od nejnizsi hodnoty - vnitrni stabilni razeni: counting sort
      * @param array pole k serazeni
      * @param dimension rozmer dat (fixni)
      * @return serazene pole
      */
     public static String[] radixSort(String[] array, int dimension){
         for(int i = dimension - 1; i >= 0 ; i--){
             array = countingSortForRadix(array, i); //stabilne serad dle i-te pozice
         }
         return array;
     }
     /**
      * Counting sort pro radix sort - radi pole dle hodnoty na pozici
      * @param array pole k serazeni
      * @param position pozice, podle ktere se bude radit
      * @return serazene pole dne pozice
      */
     public static String[] countingSortForRadix(String[] array, int position){
         String[] aux = new String[array.length];
 
         char min = array[0].charAt(position);
         char max = array[0].charAt(position);
         for(int i = 1; i < array.length; i++){
             if(array[i].charAt(position) < min) min = array[i].charAt(position);
             else if(array[i].charAt(position) > max) max = array[i].charAt(position);
         }
 
         int[] counts = new int[max - min + 1];
 
         for(int i = 0;  i < array.length; i++){
             counts[array[i].charAt(position) - min]++;
         }
 
         counts[0]--;
         for(int i = 1; i < counts.length; i++){
             counts[i] = counts[i] + counts[i-1];
         }
 
         for(int i = array.length - 1; i >=0; i--){
             aux[counts[array[i].charAt(position) - min]--] = array[i];
         }
 
         return aux;
     }
 

SEO od společnosti Digital Pylon


Online casino s algoritmem

České casino online online slot-vegas.cz

Hrajte nejlepší hry jako je GoodGame Empire.





Zajímavé články: Jak najít práci snů? Zvolte kariéru v IT!, Češi mají rádi hrací automaty online, Jak funguje algoritmické obchodování Casino, Online výuka Algoritmus a online marketing mají svá pravidla, Automaty, Matematický vliv, Ratings, Jak fungují algoritmy hazardních her online: více znalostí, více peněz, SYPWAI - nástroj pro vědecký vývoj, Vynikají na globálním trhu: Nejlepší vývojáři softwaru pro online výherní automaty, Jak si vybrat nejlepší české online casino, Proč byste měli hrát online casino VPN revoluce, Kde najdeme algoritmy v každodenním životě?, Čeká vás pracovní pohovor mimo město? Podívejte se, jak dokonale zvládnout včasný příchod, 5 úžasných technologií ze světa hazardních her, Mirror and access to Mostbet, Svou kancelář můžete mít stále po ruce, Jaké výhody má digitalizovaná firma oproti off-line konkurenci?, Jaký systém vybrat pro snadné řízení výroby?, Nahradí umělá inteligence ajťáky?, Důvody, proč používat SnapTik ke stahování videí TikTok, Dokonalý den na pláži: Co si vzít s sebou, aby byl výlet zábavný a bezpečný?, Jak přežít dlouhý let?, Go pay GoodGame Empire, Blockchain, Rozhovor, Umělá inteligence


Doporučujeme

Internet pro vaši firmu na míru

https://www.algoritmy.net