Algoritmas yra gerai apibrėžtų veiksmų seka, apibrėžianti abstrakčią problemos sprendimą. Naudokite šią žymą, kai problema yra susijusi su algoritmo dizainu.

Algoritmas yra ordered instrukcijų rinkinys, pagrįstas oficialiąja kalba, su šiomis sąlygomis:

  • Žinoma Instrukcijų skaičius turi būti ribotas.
  • Vykdomas Visi nurodymai, atsižvelgiant į kalbą, turi būti laikomi ribotą laiką.

Algoritmas neturėtų būti deterministinis - yra daug atsitiktinių algoritmų, pavyzdžiui, „QuickSort“ su savavališku rotacijos elemento pasirinkimu.

Algoritmas gali būti išreikštas įvairiais būdais:

  • Kaip nurodymų seka
  • Kaip blokų schema
  • Panašus kodas esamoje ar naujoje programavimo kalba
  • Kaip tekstas žmogaus kalba
  • Kaip formalaus skaičiavimo modelio, pvz., „Turing“ įrenginio, įgyvendinimas.
  • Arba kitais būdais.

Algoritmas gali išspręsti problemų grupę. Pavyzdžiui, "1 ir 3" ir "4 ir 5" suma yra vienos klasės problemos: "dviejų sveikųjų skaičių suma". Be to, ši problemų klasė paprastai gali būti išspręsta įvairiais algoritmais.

Vienas iš svarbiausių algoritmo kūrimo aspektų yra našumas. Dideliems duomenų rinkiniams geras algoritmas gali įveikti blogą algoritmą keliais dydžiais. Algoritmo veikimas dažnai vertinamas naudojant Big O arba notaciją, bet būkite atsargūs su asimptotiniu žymėjimu, nes gali būti įtrauktos didelės konstantos.

Pagrindinė algoritmo klasifikacija vadinama algoritmo sudėtingumu .

Kitas svarbus žingsnis kuriant algoritmą yra teisingumo įrodymas. Algoritmas turi iš tikrųjų pateikti teisingą rezultatą bet kuriam problemos atvejui. Visada turėtume rūpintis visomis sąlygomis, kai siūlomas algoritmas gali nepavykti. Tai galima padaryti naudojant kelis metodus, pvz., Modelio patikra, patvirtinimas, ciklas neaktyvus.

Susijusios nuorodos

Papildomi algoritmų ištekliai apima: