Sådan bruges markeringssortering

Sådan bruges markeringssortering

Udvælgelsessortering er en sorteringsteknik, der vælger et listeelement og derefter bytter sted med et andet. Det vælger det største element og bytter det derefter med et element i listens højeste indeks.





Algoritmen gør dette gentagne gange, indtil listen er sorteret. Hvis du ikke er helt sikker på, hvordan valgsort fungerer, er du kommet til det rigtige sted. Vi forklarer det mere dybtgående herunder sammen med at vise dig et eksempel.





Udvælgelsessort: Et nærmere kig

Antag, at du har listen: [39, 82, 2, 51, 30, 42, 7]. For at sortere listen ved hjælp af valgsortering, skal du først finde det højeste tal i den.





Med den givne liste er dette nummer 82. Skift 82 med tallet i det højeste indeks (det vil sige 7).

Efter det første pas er den nye listeordre: [39, 7, 2, 51, 30, 42, 82]. Hver gang algoritmen går igennem hele listen, kaldes det et 'pass'.



Bemærk, at listen bevarer en sorteret underliste og en usorteret underliste under sorteringsprocessen.

hvordan finder man ip -adresse på mobiltelefon

Relaterede: Hvad er Big-O Notation?





Den originale liste begynder med en sorteret liste med nul poster og en usorteret liste over alle elementerne. Efter den første pasning har den en sorteret liste med kun tallet 82.

Ved den anden pasning vil det højeste tal i den usorterede deleliste være 51. Dette nummer vil blive udvekslet med 42 for at give den nye liste rækkefølge herunder:





hvad betyder lte på min telefon

[39, 7, 2, 42, 30, 51, 82].

Processen gentages, indtil hele listen er sorteret. Nedenstående figur opsummerer hele processen:

Tallene med fed sort viser den højeste listeværdi på det tidspunkt. De i grønt viser den sorterede underliste.

Algoritme analyse

For at få kompleksiteten (ved hjælp af Big-O-notation) af denne algoritme skal du følge op på nedenstående:

Ved første pas foretages (n-1) sammenligninger. På den anden pasning, (n-2). På den tredje pasning, (n-3) og så videre indtil den (n-1) th pas, som kun foretager en sammenligning.

Sammenfattende sammenligningerne som nedenfor giver:

(n-1)+ (n-1)+ (n-1)+ ...+ 1 = ((n-1) n)/2.

Derfor er valgsort O (n2).

Kodeimplementering

Koden viser funktioner, du kan bruge til at udføre valgsortering ved hjælp af Python og Java.

Python:

def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Java:

void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}

Gå videre fra markering Sorter til fletningssorter

Som algoritmeanalysen ovenfor har vist, er selektionssorteringsalgoritmen O (n2). Det har en eksponentiel kompleksitet og er derfor ineffektiv for meget store datasæt.

hvordan man skifter harddisk fra skrivebeskyttet mac

En meget bedre algoritme at bruge ville være flette sortering med en kompleksitet på O (nlogn). Og nu ved du, hvordan udvælgelsessortering fungerer. Næste op på din undersøgelsesliste til sorteringsalgoritmer bør være sammensmeltningssorteringen.

Del Del Tweet E -mail De 8 bedste websteder til gratis download af lydbøger

Lydbøger er en fantastisk underholdningskilde og meget lettere at fordøje. Her er de otte bedste websteder, hvor du kan downloade dem gratis.

Læs Næste
Relaterede emner
  • Programmering
  • Programmering
  • Algoritmer
Om forfatteren Jerome Davidson(22 artikler udgivet)

Jerome er personaleforfatter på MakeUseOf. Han dækker artikler om programmering og Linux. Han er også en kryptoentusiast og holder altid øje med kryptoindustrien.

Mere fra Jerome Davidson

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere