Kako koristiti sortiranje odabira

Kako koristiti sortiranje odabira

Sortiranje odabirom je tehnika sortiranja koja odabire stavku popisa, a zatim zamjenjuje njeno mjesto s drugom. Odabire najveću stavku, a zatim je zamjenjuje stavkom u najvišem indeksu popisa.





Algoritam to čini više puta dok se popis ne sortira. Ako niste sasvim sigurni kako funkcionira sortiranje odabira, došli ste na pravo mjesto. U nastavku ćemo to detaljnije objasniti, zajedno s primjerom.





Sortiranje odabira: Bliži pogled

Pretpostavimo da imate popis: [39, 82, 2, 51, 30, 42, 7]. Da biste sortirali popis pomoću sortiranja odabira, najprije morate pronaći najveći broj u njemu.





Uz navedeni popis, taj broj je 82. Zamijenite 82 s brojem u najvećem indeksu (to jest, 7).

Nakon prvog prolaska, novi redoslijed popisa bit će: [39, 7, 2, 51, 30, 42, 82]. Svaki put kada algoritam prođe cijeli popis, to se naziva 'prolaz'.



Uočite da popis sadrži sortirani i nerazvrstani popis tijekom procesa sortiranja.

slaže li vam se tinder s prijateljima na Facebooku

Povezano: Što je Big-O notacija?





Izvorni popis počinje sortiranim popisom nula stavki i nerazvrstanim popisom svih stavki. Zatim, nakon prvog prolaska, ima sortirani popis koji ima samo broj 82.

Na drugom prolazu najveći broj na nerazvrstanom podpopisu bit će 51. Taj će se broj zamijeniti s 42 kako bi se dolje prikazao novi redoslijed popisa:





kako postaviti zadani google račun

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

Postupak se ponavlja sve dok se cijeli popis ne sortira. Donja slika sažima cijeli proces:

Podebljano crni brojevi pokazuju najveću vrijednost popisa u to vrijeme. Oni u zelenom prikazuju sortirani podpopis.

Algoritamska analiza

Da biste dobili složenost (koristeći Big-O zapis) ovog algoritma, slijedite upute u nastavku:

Na prvom prolazu prave se (n-1) usporedbe. Na drugom prolazu, (n-2). Na trećem prolazu, (n-3) i tako dalje do (n-1) -toga prolaska što čini samo jednu usporedbu.

Sažimajući usporedbe kako slijedi dobivamo:

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

Stoga je sortiranje odabira O (n2).

Implementacija koda

Kôd prikazuje funkcije koje možete koristiti za obavljanje sortiranja odabira pomoću Pythona i Jave.

Piton:

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;
}}

Prelazak s sortiranja odabira na sortiranje spajanja

Kao što je gornja analiza algoritama pokazala, algoritam sortiranja odabira je O (n2). Ima eksponencijalnu složenost i stoga je neučinkovit za vrlo velike skupove podataka.

mogu li gledati Roku na lokalnim kanalima

Mnogo bolji algoritam za upotrebu bio bi sortiranje stapanjem sa složenošću O (nlogn). I sada znate kako funkcionira sortiranje odabira, sljedeće na popisu studija za algoritme sortiranja trebalo bi biti sortiranje spajanjem.

Udio Udio Cvrkut E -pošta 8 najboljih web stranica za besplatno preuzimanje audioknjiga

Zvučne knjige izvrstan su izvor zabave i mnogo ih je lakše probaviti. Evo osam najboljih web stranica na kojima ih možete besplatno preuzeti.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Programiranje
  • Algoritmi
O autoru Jerome Davidson(22 objavljena članka)

Jerome je osobni pisac na MakeUseOfu. On pokriva članke o programiranju i Linuxu. On je također entuzijast za kripto i uvijek prati kripto industriju.

Više od Jeromea Davidsona

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu