Selitetyt algoritmit - mitä ne ovat ja yleiset lajittelualgoritmit

Perusmuodossaan algoritmi on joukko yksityiskohtaisia ​​vaiheittaisia ​​ohjeita tehtävän suorittamiseksi. Esimerkiksi algoritmi kahvin valmistamiseksi ranskalaisessa lehdistössä olisi:

  1. Kaada vettä kattilaan, sulje kansi ja käynnistä se.
  2. Poista kansi ranskalaisesta puristimesta ja kaada 17 grammaa jauhettua kahvia.
  3. Kun vedenkeitin kiehuu, kaada 290 grammaa kuumaa vettä ranskalaiseen puristimeen.
  4. Aseta ranskalaisen puristimen kansi takaisin männällä ylöspäin.
  5. Odota 4 minuuttia.
  6. Paina mäntää varovasti alaspäin, kunnes se saavuttaa pohjan.
  7. Kaada kahvia mukiin.

Tietojenkäsittelytieteessä yleisillä algoritmeilla on nimiä kuten "Quicksort" ja "Bogosort". Algoritmit ryhmitellään usein eri luokkiin, kuten haku-, lajittelu- ja pakkausalgoritmit. Lisäksi algoritmeja voidaan kuvata lähestymistavalla, jota se tarvitsee tehtävän suorittamiseen, kuten rekursiivinen, takaisinkytkentä, jakaminen ja valloittaminen, ahne ja raaka voima.

Algoritmit yhdistetään usein tietorakenteisiin, vaikka ne ovatkin pohjimmiltaan erilaisia. Tietorakenteet ovat menetelmiä datan tallentamiseksi, jotta algoritmi voi suorittaa sen toiminnot helposti.

Joitakin yleisiä esimerkkejä tietorakenteista ovat taulukot, pinot, jonot, linkitetyt luettelot, puut, kaaviot, hash-taulukot ja kasat.

Tehokkuus

Algoritmeja arvioidaan ja verrataan usein niiden tehokkuuden ja tarvitsemien resurssien perusteella. Yksi yleisimmistä tavoista arvioida algoritmi on tarkastella sen aikakompleksisuutta Big O -merkinnällä kutsutun menetelmän avulla.

Big O -merkintä on tapa kuvata algoritmin nopeutta tai monimutkaisuutta, ja se näyttää pahin tapausten lukumäärän tietylle syöttökoolle. On tärkeää ymmärtää eri algoritmien mahdollinen ajoaika, varsinkin kun työskentelet suurten tai kasvavien tietojoukkojen kanssa. Suuri O-notaatio helpottaa oikean algoritmin valitsemista jokaiselle tehtävälle.

Algoritmien lajittelu

Lajittelualgoritmeja on eri makuja tarpeen mukaan. Jotkut hyvin yleiset ja laajalti käytetyt ovat:

Nopea lajittelu

Mikään lajittelukeskustelu ei ole valmis mainitsematta pikalajittelua.

Yhdistä lajittelu

Yhdistä lajittelualgoritmi perustuu pienempien matriisien jakamiseen ja lajitteluun, ennen kuin ne yhdistetään lajiteltuihin matriiseihin.

freeCodeCampin opetussuunnitelmassa korostetaan voimakkaasti algoritmien luomista. Tämä johtuu siitä, että algoritmien oppiminen on hyvä tapa harjoitella ohjelmointitaitoja. Haastattelijat testasivat yleisimmin ehdokkaita algoritmeilla kehittäjän työhaastattelujen aikana.