PočítačeProgramovanie

Quicksort ako spôsobu programovania

V roku 1960, K. A. Inovať vyvinuli metódu pre rýchle triedenie informácií, sa stal najslávnejší. Dnes to je široko používaný v programovaní, pretože má mnoho pozitívnych vlastností: možno ho použiť pre všeobecné prípady, vyžaduje malý nárast v ďalšej pamäti, kompatibilný s rôznymi typmi zoznamov a ľahko implementovať. Ale to má svoje nevýhody, ktoré má Quicksort: pomocou práce povolené veľa chýb, a to je trochu nestabilné.

Avšak, to je najviac študoval verzia. Po prvom platobnom Hoare, veľa robiť svoju hustú štúdia. veľká základňa bola založená na teoretické otázky nájsť čas strávený v práci, ktorá sa opiera o empirické dôkazy. Tam boli skutočné návrhy na zlepšenie základnej algoritmus a zvýšenie rýchlosti.

Quicksort je veľmi časté, že možno nájsť všade. Na jeho základe je realizovaný spôsob TList.Sort, prítomný vo všetkých verziách (s výnimkou 1) Delphi, knižnice funkcií času, ktorý trvala, qsort v jazyku C ++.

Základným princípom činnosti možno formulovať ako "rozdeľuj a panuj". To nastane lámanie zoznam do dvoch skupín, a sú radené pre každú časť sama o sebe. Z toho vyplýva, že väčšia pozornosť by sa mala venovať separačného procesu, pri ktorom dochádza k nasledujúcemu: je určená základného prvku a má relatívne preskupené celý svoj zoznam. Postavený na ľavej strane skupiny kandidátov, ktorého hodnota je nižšia ako všetky ostatné pravidlá prevodu. Ukazuje sa, že hlavným prvkom v zoradení zozname, vo svoje právoplatné miesto. V ďalšej fáze - výzva rekurzívne funkcie triedenia pre obe strany prvkov vzhľadom k základni. To končí proces funguje iba v prípade, že zoznam obsahuje iba jeden prvok, ktorý sa má triediť. Preto, aby sa naučiť programovací funkciu ako rýchly druhu, je nutné poznať prácu algoritmov na nižšej úrovni: a) voľba základného prvku; b) zoznam najúčinnejší permutácie vzniku dvoch skupín s menšími a väčšími hodnotami.

Zoznámte sa prvých princípov. Pri výbere základného prvku, by v ideálnom prípade byť vybraný zo zoznamu priemer. Potom sa na prelome je rozdelený na dve rovnaké polovice. Len vypočítať priemernú hodnotu v zozname je veľmi ťažké, takže aj najrýchlejší triedenie obchádza tento kalkul stranu. Ale voľba základného prvku s maximálnou alebo minimálna hodnota - tiež nie je tou najlepšou voľbou. V prípade, že takéto určenie jedného vytvára bude zaručená prázdne zoznamy a druhý plný. Z toho vyplýva záver, že ako základný prvok by mal byť zvolený ten, ktorý je bližšie k priemeru, ale na maximum a minimum.

Akonáhle je voľba určená, môžete pristúpiť k algoritmu rozkladu. Táto tzv vnútorným slučiek Quicksort. Všetko je postavené na dvoch rýchly prístup indexy: najprv prejsť prvky zľava doprava, druhý naopak, sprava doľava. Začína vykonávania operácie právo: index je na zozname a porovnať všetky hodnoty do hlavnej. Cyklus je dokončená, keď je prvok je menšia než alebo rovná vodiacej čiary. To znamená, že tam je porovnanie a znižuje hodnotu indexu. Na ľavej ruke, keď je práca dokončená väčší alebo rovnaká hodnota. Tu sa zvyšuje porovnanie hodnôt.

V tomto štádiu delenia algoritmus, ktorý zahŕňa Quicksort, môžu nastať dve situácie. Prvým z nich je, že index naľavo je menšia než pravá. To indikuje chybu, potom tam sú prvky, na ktorom to bolo uvedené v zozname sú v zlom poradí. Výstup - zmeniť svoje miesta. Druhý prípad je, keď obaja stĺpca je rovná alebo skrížené. To naznačuje úspešné oddelenie zoznamu, to znamená, že práca je teraz dokončená.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sk.atomiyme.com. Theme powered by WordPress.