Ako používať triedenie výberu

Ako používať triedenie výberu

Zoradenie podľa výberu je technika triedenia, ktorá vyberie položku zoznamu a potom si vymení svoje miesto za inú. Vyberie najväčšiu položku a potom ju zamení za položku v najvyššom indexe zoznamu.





Algoritmus to robí opakovane, kým nie je zoznam zoradený. Ak si nie ste celkom istí, ako výberové triedenie funguje, ste na správnom mieste. Vysvetlíme to podrobnejšie nižšie a ukážeme vám príklad.





Zoradenie výberu: Bližší pohľad

Predpokladajme, že máte zoznam: [39, 82, 2, 51, 30, 42, 7]. Ak chcete zoznam zoradiť pomocou výberového zoradenia, musíte v ňom najskôr nájsť najvyššie číslo.





S daným zoznamom je to číslo 82. Vymeňte 82 za číslo v najvyššom indexe (to znamená 7).

Po prvom prechode bude nové poradie zoznamu: [39, 7, 2, 51, 30, 42, 82]. Zakaždým, keď algoritmus prejde celým zoznamom, nazýva sa to „prechod“.



Všimnite si toho, že zoznam počas procesu triedenia udržiava zoradený podadresár a netriedený zoznam.

ako nainštalovať obchod Google Play na tablet amazon fire

Súvisiace: Čo je to Big-O notácia?





Pôvodný zoznam začína zoradeným zoznamom nulových položiek a netriedeným zoznamom všetkých položiek. Potom po prvom prechode má zoradený zoznam, ktorý má iba číslo 82.

Pri druhom priechode bude najvyšším číslom v netriedenom podzoznamu 51. Toto číslo bude vymenené za 42, aby bolo uvedené nové poradie v zozname nižšie:





ako nastaviť predvolený účet Google

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

Tento postup sa opakuje, kým nie je zoradený celý zoznam. Nasledujúci obrázok sumarizuje celý proces:

Čísla vyznačené tučnou čiernou predstavujú v tom čase najvyššiu hodnotu zoznamu. Tí, ktorí sú zelení, zobrazujú zoradený podzoznam.

Analýza algoritmu

Aby ste získali komplexnosť (pomocou notácie Big-O) tohto algoritmu, postupujte podľa nižšie uvedených pokynov:

Pri prvom prechode sa vykoná (n-1) porovnanie. Pri druhom prechode (n-2). Pri treťom priechode (n-3) a tak ďalej, až kým (n-1) siedmy prihrávka robí iba jedno porovnanie.

Ak zhrnieme porovnania nižšie, dostaneme:

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

Preto je výberové triedenie O (n2).

Implementácia kódu

Kód ukazuje funkcie, ktoré môžete použiť na vykonávanie výberového triedenia v jazykoch Python a 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;
}}

Prechod od výberu k triede k zlúčeniu

Ako ukázala vyššie uvedená analýza algoritmu, algoritmus výberového triedenia je O (n2). Má exponenciálnu zložitosť, a preto je neefektívny pre veľmi veľké množiny údajov.

https upraviť Yahoo com config delete_user

Oveľa lepším algoritmom na použitie by bolo zlúčenie so zložitosťou O (nlogn). A teraz viete, ako funguje výberové triedenie, ďalšie vo vašom študijnom zozname pre triediace algoritmy by malo byť zlúčené triedenie.

zdieľam zdieľam Tweet E -mail 8 najlepších webových stránok na bezplatné stiahnutie zvukových kníh

Audioknihy sú skvelým zdrojom zábavy a oveľa jednoduchšie stráviteľné. Tu je osem najlepších webových stránok, na ktorých si ich môžete zadarmo stiahnuť.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • Algoritmy
O autorovi Jerome Davidson(22 publikovaných článkov)

Jerome je spisovateľ štábu v MakeUseOf. Venuje sa článkom o programovaní a Linuxe. Je tiež nadšencom kryptomien a vždy má prehľad o kryptospracujúcom priemysle.

Viac od Jerome Davidsona

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber