Vodič · Primeri algoritama

Primeri algoritama – vodič kroz zadatke

Zadaci u kojima nije dovoljno samo „napisati program“, već treba smisliti dobar postupak: matematički algoritmi, ubrzanje programa formulom, rekurzija, generisanje kombinatornih objekata i pretraga sa vraćanjem (bektreking).

Pre ovih zadataka treba da sigurno rešavaš zadatke iz osnovnih primera – posebno petlje, nizove i funkcije.

  • 7–8. razred i srednja škola
  • C++
  • Priprema za okružno i državno takmičenje
Saveti: pre pisanja koda proceni koliko operacija program radi za najveći ulaz iz ograničenja. Oko 108 jednostavnih operacija je otprilike sekunda – ako je tvoj postupak sporiji, traži formulu ili bolji algoritam.

1 Matematički algoritmi i složenost

NZD i NZS, prosti brojevi, faktorizacija i kako sporu petlju zameniti formulom.

2 Rekurzija

Funkcija koja poziva samu sebe: stepen, Fibonačijev niz, binarni zapis, inverzna matrica.

3 Kombinatorika i bektreking

Kako sistematski nabrojati sve mogućnosti i kako odbaciti one koje ne vode rešenju.

4 Lekcije uz ove zadatke

Teorija koju vredi pročitati pre ili tokom rešavanja.

5 Dalje

Zadaci sa takmičenja po nivoima.

Predloženi redosled

  1. Algoritmi: NZD i prosti brojevi
  2. Poboljšanje složenosti
  3. Rekurzivni algoritmi
  4. Kombinatorni problemi
  5. Bektreking i gruba sila

Korisni spoljni resursi

  • Petlja – zbirke „Napredni algoritmi“ i zadaci sa takmičenja sa automatskom proverom
  • CSES Problem Set – klasični algoritamski zadaci (na engleskom), poglavlja Introductory i Complete Search
  • VisuAlgo – animacije algoritama: rekurzija, sortiranje, pretraga