|
Ajrat va xukmronlik qil” tamoyilidagi algoritmlar sinfi
|
bet | 1/4 | Sana | 15.05.2024 | Hajmi | 420,02 Kb. | | #235184 |
“Ajrat va xukmronlik qil” tamoyilidagi algoritmlar sinfi
Ishdan maqsad: Talabalarda “Bo’lib tashla va hukmronlik qil” tamoyilidagi algoritmlarni asimptotik tahlil qilish bo’yicha ko’nikmalar hosil qilish.
Nazariy qism:
Dasturlashda, bo’lib tashla va hukmronlik qil — bu algoritmik paradigma bo’lib, bu paradigmaning asosiy g’oyasi algoritmik masalalarni bosh masalaga o’xshash kichik qismlarga bo’lib tashlab, ularni rekursiv hal qilishdan iborat. Bu paradigmada masala qismlarga bo’linganligi sababli, qism masalalar bosh masalaga qaraganda kichikroq bo’lishi va bu bo’linish to’xtashi uchun asos holat bo’lishi kerak. Barcha turdagi bo’lib tashla va hukmronlik qil algoritmlari 3 ta bosqichdan iborat bo’ladi:
Bo’lib tashlash bosqichi. Bunda bosh masala huddi shu masalaga o’xshash kichikroq masalalarga bo’lib chiqiladi.
Hukmronlik bosqichi. Asos holatimizga mos kelib qolgan qism masalalar huddi u kabi yechiladi.
Birlashtirish bosqichi. Bu bosqichda yechilgan kichik qism masalalar qaytib birlashtirib chiqiladi va bu bosh masala yechimi bo’ladi.
Shu sababli, bo’lib tashla hukmronlik qil paradigmasini 3 ta jumla bilan eslab qolish mumkin: bo’lib tashla, hukmronlik qil, birlashtir. Oddiy, bittagina qadamdan iborat “bo’lib tashla va hukmronlik qil” algoritmi qanday ishlashini ko’raylik(1-rasm):
1-rasm. Bir qadamdan iborat “bo’lib tashla va hukmronlik qil” algoritmining ishlash printsipi.
Agar biz qadamlar sonini oshiradigan bo’lsak, paradigma tasviri quyidagicha ko’rinish oladi(6.2-rasm):
2- rasm. Ko’p qadamdan iborat “bo’lib tashla va hukmronlik qil” algoritmining ishlash printsipi
Bo’lib tashla va hukmronlik qil paradigmasi asosiy masalalari
Bu paradigma dasturlashning juda mashhur algoritmlari asosini tashkil qiladi:
Ikkilik qidirish (Binary Search)
Merge Sort
Quick Sort
Eng yaqin ikki nuqta (Closest two points)
Strassen ko’paytirishi (Strassen multiplication)
Karatsuba algoritmi (Karatsuba algorithm)
Cooley-Tukey algoritmi (Cooley-Tukey Algorithm)
|
| |