RačunalaProgramiranje

Quicksort kao metoda programiranja

Godine 1960., K. A. Hoar razvio metodu za brzo sortiranje informacija, postao je najpoznatiji. Danas se naširoko koristi u programiranju, jer ima mnogo pozitivnih svojstava: može se koristiti za opću slučajeva, to zahtijeva malo povećanje dodatnu memoriju, kompatibilan sa različitim tipovima lista i jednostavan za implementaciju. Međutim, postoje nedostaci, koji ima Quicksort: koristeći posao dozvoljava mnogo grešaka, i to je nešto nestabilan.

Međutim, to je najviše proučavao verziju. Nakon prve uplate Hoare, mnogi raditi svoj gust studija. velika baza je osnovana na teorijskim pitanjima pronalaženja vrijeme provedeno na poslu, koji se oslanja na empirijskim dokazima. Bilo je pravi prijedloge za poboljšanje osnovne algoritam i povećao brzinu.

Quicksort je vrlo čest, može se naći svuda. Na osnovu njega metoda se provodi TList.Sort, prisutan u svim verzijama (osim 1) Delphi, funkcija biblioteka vremena je bilo potrebno da se završi, qsort u C ++.

Osnovni princip rada može biti formuliran kao "zavadi pa vladaj". Javlja razbijanje liste u dvije grupe i su poredani za svaki dio od sebe. Iz toga slijedi da više pažnje treba posvetiti proces razdvajanja, u kojem dolazi do sljedeće: određuje bazu element i relativno preuređen čitav svoj popis. Napravljen da lijevo od grupe kandidata, čija je vrijednost manja od svih drugih pravila transfer. Ispostavilo se da je glavni element u sortirane liste je u svoje zasluženo mjesto. Sljedeću fazu - izazov rekurzivne funkcije sortiranje za obje strane elemenata u odnosu na bazu. Završava proces radi samo ako lista sadrži samo jedan element, to je da se sortiraju. Tako je, u cilju ovladavanja funkciju programiranja kao brz vrste, potrebno je znati rad algoritama nižeg nivoa: a) izbor člana baze; b) spisak od najefikasnijih permutacija za proizvodnju dva seta sa manjim i većim vrijednostima.

Upoznaju sa prvom principima. Pri izboru člana bazu, idealno bi bilo biti izabran sa liste prosjeka. Zatim na poluvremenu je podijeljena u dvije jednake polovine. Samo izračunati prosječne vrijednosti u listi je vrlo teško, pa čak i najbrži sortiranje zaobilazi ovaj račun stranu. Ali izbor osnovni element maksimalnu ili minimalnu vrijednost - i nije najbolja opcija. U slučaju da takvo utvrđivanje jedne stvara prazne liste će biti zagarantovana, a druga puna. Stoga je zaključak da kao član baza treba odabrati onaj koji je bliže prosjeku, ali na maksimum i minimum.

Jednom kada se određuje izbor, možete nastaviti na algoritam raspadanja. Ovaj takozvani unutarnji petlje brzo vrste. Sve je građena na dvije Rapid Access indeksa: prvo ide preko elemenata s lijeva na desno, drugi, naprotiv, s desna na lijevo. Počinje izvršavanje operacija u pravu: indeks je na listi i usporedite sve vrijednosti do glavnog. Ciklus je završeno kada je element je manji od ili jednak osnovne linije. To je, tu je poređenje i smanjuje vrijednost indeksa. Na lijevoj ruci kada je posao završen veća ili jednaka vrijednosti. Evo, povećava poređenje vrijednosti.

U ovoj fazi podjele algoritam koji se sastoji od kviksort, dvije situacije mogu nastati. Prvi je da je indeks na lijevoj strani je manje nego u pravu. To ukazuje na grešku, onda postoje elementi na kojima je navedeno na listi su u pogrešnom poretku. Izlaz - promijeniti svoja mjesta. Drugi je situacija kada su oba stupca jednaka ili su prešli. To ukazuje na uspješan odvajanje liste, to jest, rad je sada završena.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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