Vodič · Algoritmi · Rekurzija i bektreking

Rekurzija i bektreking – vodič kroz lekcije

Rekurzija je tehnika u kojoj funkcija rešava problem tako što poziva samu sebe za manji problem. Na njoj se zasnivaju bektreking, pretraga grafova, „podeli pa vladaj“ i dinamičko programiranje.

Vodič ide od prvog rekurzivnog programa, preko klasičnih primera, do bektrekinga i generisanja svih rasporeda. Sve lekcije imaju zadatke sa rešenjima u C++-u.

  • 7–8. razred i srednja škola
  • C++
  • Priprema za takmičenja
Kako da radiš: uz svaki primer nacrtaj stablo poziva za mali ulaz (npr. n = 3). Kad razumeš kojim redom se pozivi otvaraju i zatvaraju, rekurzija prestaje da bude „magija“.

1 Osnove rekurzije

Šta je rekurzija, bazni slučaj, stek poziva i klasični primeri iz matematike.

2 Bektreking i generisanje

Sistematsko isprobavanje mogućnosti sa vraćanjem: rasporedi, podskupovi, slagalice.

3 Zadaci za vežbu

Zbirke zadataka iz rekurzije i bektrekinga sa rešenjima.

4 Šta dalje

Kada rekurzija počne da računa iste stvari mnogo puta, prelazi se na dinamičko programiranje.

Predloženi redosled

  1. Uvod u rekurziju
  2. Faktorijel, stepen i NZD
  3. Rekurzivni algoritmi
  4. Hanojske kule
  5. Bektreking
  6. Permutacije i kombinacije
  7. Sudoku rešavač
  8. Zadaci: bektreking i gruba sila
Za takmičare: rekurzija i bektreking su prva nedelja plana Priprema za državno takmičenje i SIO. Bektreking je dovoljan kada je ulaz mali (n do 20–25); za veće ulaze traži se dinamičko programiranje ili pohlepni algoritam.

Korisni spoljni resursi

  • Petlja – zbirke zadataka sa automatskom proverom (na srpskom)
  • CSES Problem Set – odeljak „Introductory Problems“ (Permutations, Chessboard and Queens, Grid Paths)
  • C++ Tutor – izvršavanje rekurzije korak po korak, sa prikazom steka poziva