Objašnjeni algoritmi - što su oni i uobičajeni algoritmi sortiranja

U svom najosnovnijem obliku, algoritam je skup detaljnih detaljnih uputa za dovršavanje zadatka. Na primjer, algoritam za kuhanje kave u francuskom tisku bio bi:

  1. Ulijte vodu u čajnik, zatvorite poklopac i uključite ga.
  2. Skinite poklopac s francuske preše i ulijte 17 grama mljevene kave.
  3. Kad voda u kotlu zakipi, u francusku prešu ulijte 290 grama vruće vode.
  4. Vratite poklopac francuskog preša s podignutim klipom.
  5. Pričekajte 4 minute.
  6. Lagano pritisnite klip prema dolje dok ne dosegne dno.
  7. Ulijte kavu u šalicu.

U računalnoj znanosti uobičajeni algoritmi imaju nazive poput "Quicksort" i "Bogosort". Algoritmi se često grupiraju u različite kategorije poput algoritama pretraživanja, sortiranja i kompresije. Dalje, algoritmi se mogu opisati pristupom koji je potreban za izvršavanje zadatka, poput rekurzivnog, vraćanja unazad, dijeljenja i osvajanja, pohlepne i grube sile.

Algoritmi su često upareni sa strukturama podataka, premda se bitno razlikuju. Strukture podataka su metode za pohranu podataka tako da algoritam može lako izvoditi operacije na njima.

Neki uobičajeni primjeri struktura podataka su nizovi, hrpe, redovi, povezani popisi, stabla, grafikoni, hash tablice i hrpe.

Učinkovitost

Algoritmi se često procjenjuju i uspoređuju na temelju njihove učinkovitosti i resursa koji su im potrebni. Jedan od najčešćih načina procjene algoritma je promatranje njegove vremenske složenosti metodom koja se naziva Big O notation.

Oznaka Big O način je za opisivanje brzine ili složenosti algoritma i prikazuje najgori broj operacija za zadanu veličinu unosa. Važno je razumjeti moguće vrijeme izvođenja za različite algoritme, posebno kada radite s velikim ili rastućim skupovima podataka. Oznaka Big O olakšava odabir pravog algoritma za svaki zadatak.

Algoritmi sortiranja

Algoritmi sortiranja dolaze u raznim okusima, ovisno o vašoj potrebi. Neke, vrlo česte i široko korištene su:

Brzo sortiranje

Nijedna rasprava o sortiranju nije potpuna bez spominjanja brze sorte.

Spoji sortiranje

Algoritam spajanja sortiranja oslanja se na razdvajanje i razvrstavanje manjih nizova prije spajanja u jedan razvrstani niz.

Nastavni plan i program freeCodeCampa jako naglašava stvaranje algoritama. To je zato što su algoritmi učenja dobar način za vježbanje vještina programiranja. Ispitivači najčešće testiraju kandidate na algoritmima tijekom razgovora za posao programera.