Skip to main content

Module recursion

Module recursion 

Source
Expand description

Rekursiya — funksiyaning o’zini o’zi chaqirishi.

§Har bir rekursiv funksiyada 2 qism bo’lishi shart

  1. Baza holati (base case) — rekursiya to’xtaydigan joy. Bo’lmasa → stack overflow;
  2. Rekursiv qadam — masalani kichikroq ko’rinishga keltirish.
faktorial(4)
 → 4 × faktorial(3)
       → 3 × faktorial(2)
             → 2 × faktorial(1)
                   → 1 × faktorial(0)
                         → 1          ← baza
 = 4 × 3 × 2 × 1 × 1 = 24

§Rekursiya narxi

Har bir chaqiruv stack da joy egallaydi. Rustda odatiy stack 8 MB — taxminan bir necha yuz ming chaqiruvga yetadi. Chuqurlik katta bo’lsa, iterativ variantga o’ting (Rust hozircha tail call optimization qilmaydi).

Functions§

ackermann
Ackermann funksiyasi — rekursiyaning “chegarasi”.
binary_search_rec
Ikkilik qidiruvning rekursiv ko’rinishi (start..end oralig’ida).
factorial
Faktorial: n! = n × (n-1) × … × 1, 0! = 1.
fib_naive
Sodda rekursiv Fibonachchi — qanday qilmaslik kerakligining namunasi.
hanoi
Hanoy minoralari: n ta diskni from ustunidan to ustuniga ko’chirish qadamlari.
reverse_string
Satrni rekursiv teskari o’girish (o’quv maqsadida).