Demak ushbu kodni ko’rib chiqamiz.
Slow funksiyasi O(N^3) murakkablikka ega bo’lib unda ichma ich 3 ta for
sikli mavjud: N*N*N. Buni osonlik bilan ko’rish mumkin.
Endi Fast funksiyasini ko’radigan bo’lsak unda ichma-ich 2 ta for sikli
mavjud. Ammo ikkinchi siklda biz Slow funksiyasini chaqirganmiz. Bu esa
algoritmning murakkabligini yanada oshiradi, ya’ni O(N^2) * O(N^3) = O(N^5).
Both funksiyasida biz ikkala funksiyadan ham foydalandik. Bunda
funksiyalar ketma-
ket qo’llangani sabab ular ichidan murakkabligi katta
bo’lgan funksiya asosiy funksiyaning murakkabligi bo’ladi ya’ni O(N^2) +
O(N^5) = O(N^5). Endi berilgan N=100 da algoritmning ishlash vaqtini
ko’radigan bo’lsak u quyidagicha:
Demak bu Both funksiyasi 570 soniyadan ko’proq vaqt ishladi. Boshqa
xarakteristikadagi mashinada bu ko’p yoki kam bo’lishi mumkin.
Xulosa qiladigan bo’lsak oddiy takrorlanish algoritmlarining murakkabligi
undagi takrorlanishlarning soniga bog’liq bo’ladi va buni aniqlash ancha oson.
Dostları ilə paylaş: