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)
Bo’lib tashla va hukmronlik qil paradigmasi afzalliklari
qiyin masalalarni osonlik bilan yechishga imkon beradi
bu paradigmaga asoslangan algoritmlar oddiy yechimlardan ko’ra tezroq ishlaydi. Masalan: oddiy saralash bo’lgan Bubble Sortning tezligi O(n²) bo’lsa, MergeSortniki O(n*logn)
bunday algoritmlarni parallel hisoblovchi sistemalarda hech qanday o’zgarishsiz ishlatish mumkin
bunday algoritmlarni qo’llashda xotira keshidan unumli foydalanish mumkin. Chunki masalalar bo’linish jarayonida shunday kichik qismlarga ajraladiki, ularni keshni o’zida turib yechish mumkin bo’ladi.
haqiqiy sonlar uchun bunday algoritmlar aniqroq ishlaydi, chunki qism yechimlardagi haqiqiy sonlar ustidagi amallar aniqroq bajariladi (masalan, ko’paytirish algoritmlarida)
Ikkilik qidirish algoritmining ishlash prinsipi
Ikkilik qidirish algoritmini ishlash prinsipini tushunish uchun keling kompyuter bilan o'yin o'ynab ko'ramiz. O'yin shartlari quyidagicha:
Kompyuter 1 dan 100 gacha ixtiyoriy son tanlaydi. Sizning vazifangiz shu sonni iloji boricha kam taxmin ishlatgan holda topish.
Har bir taxmindan keyin kompyuter sizga sizning taxminingiz kompyuter o'ylagan sondan katta yoki kichikligini aytadi.
Agar sizning taxminingiz kompyuter o'ylagan son bilan bir xil bo'lsa, o'yin tugaydi.
Xo'sh, bunda kamroq yo'l tutish uchun nima qilgan bo'lar edingiz?
Albatta, birinchi navbatda o'rtadagi sonni taxmin qilib ko'ramiz, ya'ni 50 ni(3-rasm):
3-rasm. Ikkilik qidirish algoritmini ishlash prinsipi.
Aytaylik kompyuter bizga taxminimiz o'ylangan sondan kichikroq ekanligini aytdi. Demak, endi biz 50 va undan kichik barcha son o'ylangan sondan kichik ekanligini bilamiz. Shunday qilib, bizning qidirish sohamiz ikki baravarga qisqaradi (50 ta son). Huddi shu tarzda davom etamiz. Endi 51 dan 100 gacha sonlar o'rtasidagi sonni olamiz, ya'ni 75 ni.
4-rasm. Ikkilik qidirish algoritmining ikkinchi qadami.
Kompyuter bizga 75 o'ylangan sondan katta ekanligini aytdi. Demak, 75 dan katta barcha sonlar ham o'ylangan sondan katta ekan. Shunday qilib, bizdagi qidirish sohasi yana ikki baravarga qisqardi (25 ta son). Huddi shunday davom etib, biz o'ylangan sonni topishimiz mumkin.
5-rasm. Ikkilik qidirish algoritmining keyingi qadamlari.
Sonlar 100 ta bo'lgan holatda, biz har qanday tahminni ko'pi bilan 7 ta qadamda topishimiz mumkin bo'ladi. Ikkilik qidirish algoritmi ham huddi shunday prinsipda ishlaydi!
|