Comb sort je řadicí algoritmus, který lze považovat za vylepšení bubble sortu. Ačkoliv má comb sort, stejně jako bubble sort, kvadratickou asymptotickou složitost O(n^{2}), tak je díky eliminaci problému želv a zajíců v praxi rychlejší. Algoritmus vymyslel v roce 1980 Włodzimierz Dobosiewicz.

Princip

Comb sort, jak již bylo výše zmíněno, je vylepšením bubble sortu. Zopakujme si proto základní vlastnosti bublinkového řazení. Bubble sortu v každé své porovná první prvek s druhým a pokud jsou tyto v nesprávném pořadí (tj. těžší bublinka je blíže konci pole), tak prvky prohodí. Pak analogicky postupuje dál – porovná druhý prvek s třetím, třetí se čtvrtým a tak dále, dokud nezařadí nejlehčí nalezený prvek na konec řazené části pole. Po n-1 iteracích algoritmus terminuje – všechny prvky jsou seřazeny, jelikož poslední prvek musí být zařazen správně, jsou-li správně zařazeny prvky ostatní.

Problém želv a zajíců

Zásadním nedostatkem bubble sortu je problém želv a zajíců. Zatímco se aktuálně nejlehčí bublinka může přesunout při své iteraci ve směru řazení i přes celé pole (zajíc), tak se těžké bublinky hnou v každé iteraci maximálně o jednu pozici (želvy).

Comb sort

Comb sort, obdobně jako Shell sort (stejná myšlenka aplikovaná na insertion sortem) zavádí do řazení tzv. snižující se přírůstek. To znamená, že v každé iteraci jsou porovnávány prvky mezi nimiž je určitý přírůstek (mezera) – první prvek se čtvrtým, druhý s pátým, třetí se šestým a tak podobně. Přírůstek mezi prvky se s každou iterací postupně snižuje, dokud není jednotkový. Jednotkový přírůstek, který nastane při poslední iteraci comb sortu, značí, že dojde k jeho degradaci na prostý bubble sort – tj. jsou porovnávány sousední prvky. Díky tomuto jednoduchému triku se mohou v úvodních iteracích i těžké prvky – želvy – velmi rychle přesunout na správnou stranu pole.

Zásadní otázkou samozřejmě zůstává volba správné mezery. Bylo empiricky ukázáno, že velmi dobré výsledky dává mezera, která se vypočte postupným dělením délky pole číslem 4/3.

Vizualizace


Kód


    /**
     * Comb sort (od nejvyssiho)
     *
     * @param array pole k serazeni
     */
    public static void combSort(int[] array) {
        boolean swapped = false;
        int gap = array.length;
        while (gap != 1 || swapped) {
            gap /= 1.33;
            swapped = false;
            if (gap < 1) {
                gap = 1;
            }
            for (int i = 0; i + gap < array.length; i++) {
                if (array[i] < array[i + gap]) {
                    int tmp = array[i];
                    array[i] = array[i + gap];
                    array[i + gap] = tmp;
                    swapped = true;
                }
            }
        }
    }
/**
 * Comb sort (od nejvyssiho)
 *
 * @param array pole k serazeni
 */
function combSort(array) {
    var swapped = false;
    var gap = array.length;
    while (gap != 1 || swapped) {
        gap = Math.floor(gap / 1.33);
        swapped = false;
        if (gap < 1) {
            gap = 1;
        }
        for (var i = 0; i + gap < array.length; i++) {
            if (array[i] < array[i + gap]) {
                var tmp = array[i];
                array[i] = array[i + gap];
                array[i + gap] = tmp;
                swapped = true;
            }
        }
    }
}

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


Doporučujeme

Internet pro vaši firmu na míru

https://www.algoritmy.net