Brzo sortiranje kao programiranje

Godine 1960, KA Hoare razvio metodu za brzo sortiranje informacija, postao najpoznatiji. Danas je naširoko koristi u programiranju, jer ima puno pozitivnih osobina: on se može koristiti za opće slučajevima, to zahtijeva malo povećanje u dodatnom memorijom kompatibilan s različitim vrstama popisa i jednostavan za implementaciju. No, tu su nedostaci, koji ima quicksort: pomoću djelo dozvoljeno puno grešaka, a to je nešto nestabilno.

sadržaj

    Međutim, ovo je većina proučena inačica. Nakon pojave Hoarovih prvih kalkulacija, mnogi su se uključili u njezinu gustu studiju. Velika baza nastala je na teorijskim pitanjima pronalaženja vremena provedenog na poslu, što je potkrijepljeno empirijskim podacima. Bilo je pravih prijedloga za poboljšanje glavnog algoritma i povećanje brzine rada.

    Brzo sortiranje je vrlo uobičajeno, može se pronaći svugdje. Temelji se na TList.Sort metodi, koja postoji u svim verzijama (osim za 1) Delphi, knjižničnu funkciju vremena provedenog izvršavanja, qsort u C + +.



    Osnovni princip rada može se formulirati kao „podijeli pa vladaj”. To se događa razbijanje popis u dvije skupine te su razvrstani za svaki dio po sebi. Iz toga slijedi da više pozornosti treba posvetiti procesu separacije, u kojem se pojavljuje sljedeće: određuje bazna elementa, te je relativno preuredio cijeli svoj popis. Izgrađen s lijeve skupine kandidata, čija je vrijednost manja od svih drugih pravila prijenosa. Ispada da je glavni element u popisu poredani u mjesto koje joj pripada. Sljedeća faza - izazov rekurzivni sortiranje funkcije za obje strane elementa u odnosu na bazu. Završava proces funkcionira samo ako popis sadrži samo jedan element, koji treba sortirati. Stoga, kako bi se savladala programski funkciju kao brz vrste, potrebno je poznavati rad na nižoj razini algoritmima: a) odabir bazu elementa- b) najučinkovitiji permutacije liste za dva seta sa manjim i većim vrijednostima.

    Upoznat ćemo se s načelima prve. Prilikom odabira osnovnog elementa, idealno bi trebalo biti odabrano srednje mjesto s popisa. Zatim, kada je razbijen, podijeljen je u dvije jednako polovice. Izračunajte samo srednja vrijednost na popisu je vrlo teško, pa čak i najbrže sortiranje zaobilazi ovaj račun od strane. No, odabir glavnog elementa s maksimalnom ili minimalnom vrijednošću također nije najbolja opcija. U slučaju takve definicije, jedan od stvorenih popisa će biti zajamčeno da je prazan, a drugi je prepuno. Stoga zaključak da kao temeljni element treba odabrati onu koja je bliža prosjeku, ali dalje od maksimalnog i minimalnog.

    Nakon što odlučite o izboru, možete nastaviti s radom algoritma za particioniranje. To su tzv. Unutarnji ciklusi brzog sortiranja. Sve je izgrađeno na dva brza radna indeksa: prvi će se kretati elementima s lijeva na desno, drugi, naprotiv, s desna na lijevo. Pokreće se operacija izvršenja desno: indeks prolazi kroz popis i uspoređuje sve vrijednosti s glavnim. Ciklus se smatra potpunjen ako postoji element manji ili jednak broju baze. To znači da se vrijednost indeksa uspoređuje i smanjuje. S lijeve strane, posao je završen kada se pronađe veća ili jednaka vrijednost. I ovdje se vrijednost usporedbe povećava.

    U ovoj fazi algoritma za particioniranje, koji sadrži brzu sortu, mogu se pojaviti dvije situacije. Prvo je da indeks s lijeve strane bude manji od desne. To ukazuje na pogrešku, tj. Stavke na koje je navedeno pogrešne su naravi na popisu. Izlaz je mijenja mjesta. Druga situacija je kada su oba stupca jednaki ili presijecani. To ukazuje na uspješno razdvajanje popisa, tj. Rad se može smatrati potpunim.

    Dijelite na društvenim mrežama:

    Povezan
    Sortiranje u Excelu. Radite u programu Excel. Excel u primjerimaSortiranje u Excelu. Radite u programu Excel. Excel u primjerima
    Java polja žica. Razvrstavanje polja u Java. Dvodimenzionalni Java rasporedJava polja žica. Razvrstavanje polja u Java. Dvodimenzionalni Java raspored
    Kao što je riječ u abecednom redoslijeduKao što je riječ u abecednom redoslijedu
    Razvrstavanje metoda u programiranju: razvrstavanje pomoću "mjehurića"Razvrstavanje metoda u programiranju: razvrstavanje pomoću "mjehurića"
    Kako napraviti popis u Riječi: abecednim redom: savjetiKako napraviti popis u Riječi: abecednim redom: savjeti
    Kako se SQL razvrstava?Kako se SQL razvrstava?
    Parcela je napustila centar sortiranja: što to znači? Pismo je napustilo centar za sortiranje: što…Parcela je napustila centar sortiranja: što to znači? Pismo je napustilo centar za sortiranje: što…
    Postoje četiri načina, kao u programu Excel, za brisanje praznih redakaPostoje četiri načina, kao u programu Excel, za brisanje praznih redaka
    Mjehurić sortiranje jednodimenzionalnog polja: algoritam, programski kod na C jezikuMjehurić sortiranje jednodimenzionalnog polja: algoritam, programski kod na C jeziku
    Online fortune telling: su predviđanja `Delphi varenik`Online fortune telling: su predviđanja `Delphi varenik`
    » » Brzo sortiranje kao programiranje
    LiveInternet