Valiku sortimise kasutamine

Valiku sortimise kasutamine

Valiku sortimine on sorteerimistehnika, mis valib loendiüksuse ja vahetab selle koha teise vastu. See valib suurima üksuse ja vahetab selle siis loendi kõrgeimas indeksis oleva üksusega.





Algoritm teeb seda korduvalt, kuni loend on sorteeritud. Kui te pole päris kindel, kuidas valikute sortimine toimib, olete jõudnud õigesse kohta. Allpool selgitame seda üksikasjalikumalt ja näitame teile näidet.





Valik Sorteeri: Lähem pilk

Oletame, et teil on nimekiri: [39, 82, 2, 51, 30, 42, 7]. Loendi sortimiseks valiku sortimise abil peate kõigepealt leidma selle suurima arvu.





Antud loendi korral on see arv 82. Vahetage 82 kõrgeima indeksiga (st 7) ​​numbriga.

Pärast esimest läbimist on uus loendi järjekord järgmine: [39, 7, 2, 51, 30, 42, 82]. Iga kord, kui algoritm kogu loendi läbi vaatab, nimetatakse seda läbipääsuks.



Pange tähele, et loend säilitab sortimisprotsessi ajal sorteeritud alamloendi ja sortimata alamloendi.

kuidas pdf -faili Macis kokku pakkida

Seotud: Mis on Big-O märge?





Algne loend algab nullüksuste sorteeritud loendiga ja sortimata kõigi üksuste loendiga. Pärast esimest läbimist on sellel sorteeritud loend, millel on ainult number 82.

Teisel läbimisel on sorteerimata alamnimekirja suurim number 51. See number vahetatakse 42 -ga, et anda uus nimekirja järjekord:





mida tähendab minu telefonis lte

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

Protsessi korratakse, kuni kogu loend on sorteeritud. Allolev joonis võtab kogu protsessi kokku:

Rasvases kirjas mustad numbrid näitavad sel ajal kõrgeimat loendi väärtust. Rohelised näitavad sorteeritud alamloendit.

Algoritmi analüüs

Selle algoritmi keerukuse (Big-O märke abil) saamiseks järgige alltoodud juhiseid.

Esimesel läbimisel tehakse (n-1) võrdlusi. Teisel möödumisel (n-2). Kolmandal läbimisel (n-3) ja nii edasi, kuni (n-1) möödumiseni, mis teeb ainult ühe võrdluse.

Allpool toodud võrdluste kokkuvõte annab:

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

Seetõttu on valiku sort O (n2).

Koodi rakendamine

Kood näitab funktsioone, mida saate kasutada valiku sorteerimiseks Pythoni ja Java abil.

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

Liikumine valikust Sortimine ühendamisjärjekorda

Nagu ülaltoodud algoritmianalüüs näitas, on valiku sortimise algoritm O (n2). Sellel on eksponentsiaalne keerukus ja seetõttu on see ebaefektiivne väga suurte andmekogumite puhul.

Amazoni pakend ütleb, et tarnitud, kuid pole kunagi tulnud

Palju parem algoritm, mida kasutada, oleks ühendamise sortimine keerukusega O (nlogn). Ja nüüd teate, kuidas valiku sortimine toimib, peaks sortimisalgoritmide uurimisloendis järgmiseks olema ühendamise sort.

Jaga Jaga Piiksuma E -post 8 parimat veebisaiti audioraamatute tasuta allalaadimiseks

Audioraamatud on suurepärane meelelahutusallikas ja neid on palju lihtsam seedida. Siin on kaheksa parimat veebisaiti, kust saate need tasuta alla laadida.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Algoritmid
Autori kohta Jerome Davidson(22 artiklit avaldatud)

Jerome on MakeUseOfi personalikirjanik. Ta hõlmab artikleid programmeerimise ja Linuxi kohta. Ta on ka krüptohuviline ja jälgib alati krüptotööstust.

Veel Jerome Davidsonilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin