TietokoneetOhjelmointi

Quicksort kuten ohjelmointi menetelmä

Vuonna 1960, K. A. Hoar kehittivät menetelmän nopeaa lajittelua varten tietoja, tuli kuuluisin. Nykyään sitä käytetään laajalti ohjelmointiin, koska se on paljon hyviä ominaisuuksia: sitä voidaan käyttää yleisiin tapauksissa se vaatii pientä lisäystä lisämuistia, yhteensopiva eri tyyppisiä luetteloita ja helppo toteuttaa. Mutta on haittoja, jotka on Quicksort: työvälineiden käytöstä sallittu paljon virheitä, ja se on hieman epävakaa.

On kuitenkin eniten tutkittu versioon. Kun ensimmäinen maksu Hoare monet tekevät sen tiheä tutkimuksessa. Runsas perustettiin teoreettisia kysymyksiä löytää aika työssä, jonka taustalla on empiiristä näyttöä. Oli todellinen parannusehdotukset perusalgoritmiin ja lisääntynyt nopeus.

Quicksort on hyvin yleinen, se on kaikkialla. Sen perusteella menetelmä toteutetaan TList.Sort, läsnä kaikissa versioissa (paitsi 1) Delphi, kirjasto ajan funktiona kesti loppuun, qsort C ++.

Perusperiaate toiminta voidaan formuloida "hajota ja hallitse". Sitä esiintyy rikkoo luettelon kahteen ryhmään ja lajitellaan kunkin osan itse. Tästä seuraa, että enemmän huomiota tulisi kiinnittää erotusprosessin, jonka aikana tapahtuu seuraavaa: määritetään pohjaosan ja on suhteellisen järjestänyt hänen koko lista. Rakennettu vasemmalla ryhmä ehdokkaita, jonka arvo on pienempi kuin kaikkien muiden siirto sääntöjä. On käynyt ilmi, että tärkein elementti lajitellaan luettelossa on sille kuuluvalle paikalle. Seuraavassa vaiheessa - haaste rekursiivinen lajittelu toimii molemmin puolin elementtien suhteessa alustaan. Se päättyy prosessi toimii vain, jos luettelossa on vain yksi tekijä, joka on tarkoitus järjestää. Näin ollen, jotta hallita ohjelmoinnin toimivat nopeasti lajitella, on välttämätöntä tietää työn alemman tason algoritmit: a) valinta pohjaosan; b) luettelo tehokkain permutaatio tuottaa kaksi pienempiä ja suurempia arvoja.

Perehtyä periaatteiden pohjalta. Valittaessa pohjaelementin olisi parasta valitaan luettelosta keskiarvon. Sitten tauko on jaettu kahteen yhtä suureen osaan. Vain laskea keskiarvo luettelossa on erittäin vaikeaa, joten jopa nopein lajittelun ohittaa tämän hammaskiven puolella. Mutta valinta peruselementti kanssa suurin tai pienin arvo - myös ole paras vaihtoehto. Jos tällaisia määrittäminen yhden luo tyhjän listoja taataan, ja toinen täysi. Siten päätellä, että kun pohjaosa on valittava yksi, joka on lähempänä keskiarvoa, mutta suurin ja pienin.

Kun valinta on määritetty, voit siirtyä hajoaminen algoritmi. Tämä niin sanottu sisäinen silmukoita nopeasti lajitella. Kaikki on rakennettu kahdessa Rapid Access indeksit: ensin mennä yli elementit vasemmalta oikealle, toinen, päinvastoin, oikealta vasemmalle. Aloittaa toimintansa suorittamisen oikeassa: indeksi on listalla ja vertailla arvoja tärkein. Sykli on valmis, kun elementti on pienempi kuin tai yhtä suuri kuin perustason. Eli on vertailun ja vähentää indeksin arvo. Vasemmalla kun työ on valmis suurempi tai yhtä suuri arvo. Tässä vertailussa arvo kasvaa.

Tässä vaiheessa eristämiseen algoritmi, joka käsittää quicksort, kaksi saattaa syntyä tilanteita. Ensimmäinen on, että indeksi on jäljellä alle oikeassa. Tämä osoittaa virheen, niin on elementtejä, jotka todettiin luettelossa ovat väärässä järjestyksessä. Lähtö - vaihtavat paikkaa. Toinen tilanne on, kun sekä kolonnin on yhtä suuri tai ristissä. Tämä osoittaa onnistuneen erottamisen listan, eli työ on nyt valmis.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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