Selectie sorteren gebruiken

Selectie sorteren gebruiken

Selectie sorteren is een sorteertechniek die een lijstitem selecteert en vervolgens van plaats verwisselt met een ander. Het selecteert het grootste item en verwisselt het vervolgens met een item in de hoogste index van de lijst.





Het algoritme doet dit herhaaldelijk totdat de lijst is gesorteerd. Als je niet helemaal zeker weet hoe selectie sorteren werkt, ben je hier aan het juiste adres. We zullen het hieronder in meer detail uitleggen, samen met een voorbeeld.





Selectie sorteren: een nadere blik

Stel dat je de lijst hebt: [39, 82, 2, 51, 30, 42, 7]. Om de lijst te sorteren met behulp van selectiesortering, moet u eerst het hoogste nummer erin vinden.





Met de gegeven lijst is dat nummer 82. Verwissel 82 met het nummer in de hoogste index (dat wil zeggen, 7).

Na de eerste doorgang is de nieuwe lijstvolgorde: [39, 7, 2, 51, 30, 42, 82]. Elke keer dat het algoritme de hele lijst doorloopt, heet dat een 'pass'.



Merk op dat de lijst een gesorteerde sublijst en een ongesorteerde sublijst bijhoudt tijdens het sorteerproces.

hoe een lijst met bestanden in de map af te drukken

Verwant: Wat is Big-O-notatie?





De originele lijst begint met een gesorteerde lijst van nul items en een ongesorteerde lijst van alle items. Na de eerste doorgang heeft het een gesorteerde lijst met alleen het nummer 82.

Bij de tweede doorgang is het hoogste nummer in de ongesorteerde sublijst 51. Dit nummer wordt omgewisseld met 42 om de nieuwe lijstvolgorde hieronder te geven:





hoe standaard Google-account in te stellen

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

Het proces wordt herhaald totdat de hele lijst is gesorteerd. Onderstaande figuur vat het hele proces samen:

De vetgedrukte zwarte cijfers geven op dat moment de hoogste lijstwaarde weer. De groene tonen de gesorteerde sublijst.

Algoritme Analyse

Om de complexiteit (met behulp van Big-O-notatie) van dit algoritme te krijgen, volgt u hieronder:

Bij de eerste doorgang worden (n-1) vergelijkingen gemaakt. Bij de tweede doorgang, (n-2). Bij de derde doorgang, (n-3) enzovoort tot de (n-1)e doorgang die slechts één vergelijking maakt.

Het samenvatten van de vergelijkingen zoals hieronder geeft:

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

Daarom is selectie sortering O(n2).

Code-implementatie

De code toont functies die u kunt gebruiken voor het uitvoeren van selectiesortering met Python en 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;
}}

Verdergaan van Selectie Sorteren naar Samenvoegen Sorteren

Zoals de algoritmeanalyse hierboven heeft aangetoond, is het selectiesorteeralgoritme O(n2). Het heeft een exponentiële complexiteit en is daarom inefficiënt voor zeer grote datasets.

computer start niet op in veilige modus

Een veel beter algoritme om te gebruiken is merge sort met een complexiteit van O(nlogn). En nu je weet hoe selectie sorteren werkt, zou de volgende op je studielijst voor sorteeralgoritmen de samenvoegsortering moeten zijn.

Deel Deel Tweeten E-mail De 8 beste websites om gratis audioboeken te downloaden

Audioboeken zijn een geweldige bron van entertainment en veel gemakkelijker te verteren. Hier zijn de acht beste websites waar je ze gratis kunt downloaden.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
  • Algoritmen
Over de auteur Jerome Davidson(22 artikelen gepubliceerd)

Jerome is een stafschrijver bij MakeUseOf. Hij behandelt artikelen over programmeren en Linux. Hij is ook een crypto-enthousiasteling en houdt de crypto-industrie altijd in de gaten.

Meer van Jerome Davidson

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren