Selection sort er en simpel sortering algoritme. Denne sorteringsalgoritme er en sammenligningsbaseret algoritme på stedet, hvor listen er opdelt i to dele, den sorterede del i venstre ende og den usorterede del i højre ende. Oprindeligt er den sorterede del Tom, og den usorterede del er hele listen.
det mindste element vælges fra det usorterede array og byttes med det venstre element, og dette element bliver en del af det sorterede array. Denne proces fortsætter med at flytte usorteret array grænse med et element til højre.
denne algoritme er ikke egnet til store datasæt, da dens gennemsnitlige og værst tænkelige kompleksiteter er af kr(n2), hvor n er antallet af varer.
Hvordan Valg Sortering Virker?
overvej følgende afbildede array som et eksempel.
for den første position i den sorterede liste scannes hele listen sekventielt. Den første position, hvor 14 er gemt i øjeblikket, søger vi hele listen og finder ud af, at 10 er den laveste værdi.
så vi erstatter 14 med 10. Efter en iteration 10, som tilfældigvis er minimumsværdien på listen, vises i den første position på den sorterede liste.
For den anden position, hvor 33 er bosat, begynder vi at scanne resten af listen på en lineær måde.
vi finder ud af, at 14 er den næstlaveste værdi på listen, og den skal vises på andenpladsen. Vi bytter disse værdier.
efter to iterationer placeres to mindste værdier i begyndelsen på en sorteret måde.
den samme proces anvendes på resten af elementerne i arrayet.
Følgende er en billedlig skildring af hele sorteringsprocessen −
lad os nu lære nogle programmeringsaspekter af udvælgelsessortering.
algoritme
Step 1 − Set MIN to location 0Step 2 − Search the minimum element in the listStep 3 − Swap with value at location MINStep 4 − Increment MIN to point to next elementStep 5 − Repeat until list is sorted
pseudokode
procedure selection sort list : array of items n : size of list for i = 1 to n - 1 /* set current element as minimum*/ min = i /* check the element to be minimum */ for j = i+1 to n if list < list then min = j; end if end for /* swap the minimum element with the current element*/ if indexMin != i then swap list and list end if end forend procedure
for at vide om implementering af valg sortering i C-programmeringssprog, Klik her.