[Prehrávanie hudby] DOUG LLOYD: Selection sort je algoritmus, ktorý, ako sa dalo očakávať, triedi súbor prvkov. A algoritmus odvolanie je krok-za-krokom set inštrukcií pre dokončenie úlohy. Pri výbere Roztieďte Základná myšlienka je to, nájsť najmenší netriedeného prvok a pridať do konca triedeného zoznamu. Účinne, čo to robí, je build zoradeným zoznam, jeden prvok naraz. Rozobrať to k pseudokódu sme mohli konštatovať tento algoritmus takto, opakujte, kým žiadne netriedené prvky zostávajú. Prostredníctvom netriedeného vyhľadávanie Údaje nájsť najmenšiu hodnotu, potom vymení najmenšiu hodnotu s Prvý prvok netriedeného časti. To môže pomôcť vizualizovať to, takže sa poďme pozrieť na to. Takže to, tvrdím, je netriedený poľa a ja som indikované to tým, že všetky uvedením prvky sú v červenej farbe, nie sú dosiaľ zoradené. Toto je úplná netriedený súčasťou poľa. Takže poďme prejsť krokmi výber triediť triediť tohto poľa. Takže znova, budeme opakovať do žiadnej netriedené prvky zostávajú. Budeme prehľadávať Údaje nájsť najmenšiu hodnotu, a potom sa vymení túto hodnotu s Prvý prvok netriedeného časti. Práve teraz, znovu, celý pole je netriedeného časť. Všetky červenými prvkami sú netriedený. Tak sme prehľadávať a nájdeme najmenšiu hodnotu. Začneme na začiatku, ideme až do konca, nájdeme najmenšia hodnota je jedna. Takže to je prvá časť. A potom druhá časť, vymeniť túto hodnotu prvý prvok netriedeného časti, alebo prvý červený prvok. V tomto prípade, že by bolo päť, takže sme sa vymeniť jedno a päť. Keď to urobíme, môžeme vizuálne vidieť, že máme pohyboval najmenšie hodnote prvku matice, na samom počiatku. Účinne triedenie tento prvok. A tak môžeme skutočne potvrdiť, a uvádza, že jeden, je triediť. A tak budeme uvádzať zoradené časť nášho poľa, sfarbením to modré. Teraz už len opakovať postup. Hľadáme cez netriedeného časť pole nájsť najmenší prvok. V tomto prípade je to dva. Sme vymeniť, že s prvým prvok netriedeného časti. V tomto prípade dvoch je zhodou okolností tiež prvý prvok netriedeného časti. Tak sme vymeniť dva so sebou samým, ktorá naozaj len dva listy tam, kde je, a to zoradené. Pokračovanie na, sme prehľadávať nájsť najmenší prvok. Je to tri. Sme vymeniť ju s prvým prvok, ktorý je päť. A teraz tri je zoradený. Hľadáme ešte raz, a my nájsť najmenší prvok je štyri. My ju vymeniť s prvým prvkom z netriedený časť, a teraz štyrmi je triedený. Zistili sme, že päť je najmenší prvok. Sme vymeniť ju s prvým prvok netriedeného časti. A teraz sa päť zoradené. A potom konečne, naša netriedený časť tvorí púheho jedného prvku, tak sme prehľadávať a zistíme, že šesť je najmenšie, a v skutočnosti, jediným prvkom. A potom môžeme konštatovať, že je triedený. A teraz sme zapnutý našu ponuku od bytia úplne nevytriedené v červenej farbe, úplne zoradená v modrej, s použitím výberom Triediť. Takže to, čo je tu ten najhorší možný scenár? No v absolútne najhoršie prípad, musíme sa pozerať cez všetky prvky poľa na nájsť najmenší netriedeného prvok, a musíme zopakovať tento proces n-krát. Raz pre každý prvok matice pretože len my, v tomto algoritmu, triediť jeden prvok v čase. Aký je najlepší scenár? No to je presne to isté, že jo? Vlastne sme musieť stále prechádzať každý prvok poľa aby bolo možné potvrdiť, že to je, v skutočnosti, že najmenší prvok. Takže najhorší prípad runtime, my musieť opakovať proces n-krát, raz pre každý z n elementy. A v najlepšom prípade, musíme urobiť to isté. Tak spomínal na náš výpočtovej zložitosť toolbox, čo si myslíte, že je to najhoršie puzdro runtime pre výber druhu? Čo si myslíte, že je najlepší puzdro runtime pre výber druhu? Vedeli ste asi veľký O z n na druhú, a Big Omega n na druhú? Vy by ste mať pravdu. To sú, v skutočnosti, najhorší prípad a najlepší prípad beh časy, pre výber druhu. Som Doug Lloyd. To je CS50.