DatorerProgrammering

Quick som en programmeringsmetod

År 1960 K. A. Hoar utvecklat en metod för snabb sortering av information, blev den mest kända. Idag används ofta i programmering, eftersom det har en hel del positiva egenskaper: den kan användas för generella fall krävs det en liten ökning av extra minne, kompatibel med olika typer av listor och lätt att genomföra. Men det finns nackdelar, som har Quick: med arbete får en hel del misstag, och det är något instabil.

Det är dock den mest studerade versionen. Efter den första utbetalningen Hoare, många gör sin täta studie. stor bas bildades den teoretiska frågor om att hitta den tid på jobbet, som stöds av empiriska bevis. Det fanns riktiga förslag för att förbättra den grundläggande algoritmen och ökad hastighet.

Quick är mycket vanligt, det finns överallt. På grundval av detta förfarandet implementeras TList.Sort, närvarande i alla versioner (utom en) Delfi, biblioteket funktion av tiden det tog att slutföra, qsort i C ++.

Den grundläggande principen för operation kan formuleras som en "söndra och härska". Det förekommer att bryta listan i två grupper och sorteras för varje del av sig själv. Av detta följer att mer uppmärksamhet bör ägnas åt separationsprocessen, under vilken följande inträffar: bestäms av ett baselement och har relativt ordnas hela sin lista. Byggd till vänster om en grupp av kandidater, är mindre än alla andra regler överförings värdet. Det visar sig att det viktigaste elementet i den sorterade listan är på sin rätta plats. Nästa steg - en utmaning rekursiva sorteringsfunktioner för båda sidorna av elementen relativt till basen. Det slutar processen fungerar bara om listan innehåller endast ett element, som ska sorteras. Således, för att bemästra en programmeringsfunktion som en snabb slag, är det nödvändigt att känna till arbete lägre nivå algoritmer: a) valet av baselementet; b) en lista över de mest effektiva permutation för att producera två uppsättningar med mindre och större värden.

Bekanta med första principerna. När du väljer baselementet, bör helst väljas från listan över genomsnittet. Därefter på paus är uppdelad i två lika stora delar. Bara beräkna medelvärdet på listan är mycket svårt, så även den snabbaste sorterings förbi denna kalkyl sida. Men valet av grundelement med den högsta eller lägsta värde - inte heller det bästa alternativet. Vid en sådan bestämning av en skapar tomma listor kommer att garanteras, och den andra full. Därav slutsatsen att när baselementet bör väljas en som ligger närmare genomsnittet, men på maximum och minimum.

När ett val avgörs, kan du gå vidare till nedbrytningsalgoritmen. Denna så kallade inre slingor quicksort. Allt bygger på två snabb tillgång index: först gå över elementen från vänster till höger, den andra, tvärtom, från höger till vänster. Börjar utförande operation höger: indexet är på listan och jämföra alla värden till de viktigaste. Cykeln är fullständig när elementet är mindre än eller lika med baslinjen. Det vill säga, det är en jämförelse och minskar värdet av indexet. På den vänstra sidan när arbetet är klart större än eller lika värde. Här jämförelsevärde ökar.

I detta skede av partitione algoritm som innefattar quick kan två situationer uppkomma. Den första är att indexet till vänster är mindre än rätt. Detta indikerar ett fel, då det finns faktorer som angavs i listan är i fel ordning. Output - ändra sina platser. Den andra situationen är när både av kolonnen är lika med eller korsas. Detta tyder på en lyckad separation av listan, det vill säga är nu klar arbetet.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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