4) To’rtinchi nazariy savol javobi
Algoritm murakkabligi static va dinamik o'lchovlari bilan baholash mumkin.
Statik murakkablik, algoritmlarning bajarish uchun kerak bo'lgan maksimal ishga tushirish resurslari soni, ya'ni bajariladigan operatsiyalar soni bilan belgilanadi. Algoritming ish tartibi o'zgartirilgan holda ham resurslar soni o'zgarmaydi. Statik murakkablik O(n) va boshqa murakkabliklar jihatidan yuzaga keladi.
Dinamik murakkablik esa ikkinchi birga ko'pincha qo'llaniladigan baholash usuli hisoblanadi. Bu usulda murakkablik, bajarilgan amallar soni, tashkil etiladigan obyektlar yoki o'lchashga qo'yilgan boshqa belgilashlar yordamida aniqlanadi. Dinamik murakkablikcha O(1), O(log n), O(n) va boshqa murakkabliklar jihatidan belgilanishi mumkin. Dinamik murakkablik, bir necha kerakli sahifalardan tashkil topgan web-saytlarini va qo'shimcha jadvallarni tuzishda qo'llaniladi.
5) Beshinchi nazariy savol javobi
O(n) va O(n^2) murakkablikdagi algoritmlar vaqt va hajm bo’yicha qiyinchiliklar bilan bog'liq bo'ladi.O(n) murakkablikdagi algoritm bizga n ta elementni qidirish yoki saralash vaqtini beradi. Bu demak, algoritmning ishga tushirish vaqtida n elementni qidirish yoki saralashdir va ishga tushirish shunchaki n ta bog'liq operatsiyalar almashishi kerak.O(n^2) murakkablikdagi algoritm davlatlar matritsa mavjud bo'lganda, matritsaning ichidagi yagona element bilan ishlovchi algoritmni taqdim etadi. Bu demak, algoritmning ishga tushirish vaqtida, u davlatlar matritisidagi elementlar soniga n^2 ga teng bo'lgan ta bog'liq operatsiyalar almashishi kerak.
6) oltinchi nazariy savolga javob
Algoritmlarni en yomon va ortacha holatlarda baholash esa murakkablikni yoki ustuvorlikni tushunish uchun muhimdir. Bu, algoritmlarni to’g’ri narxlarda va yomon holatlarda ishlash va mijozlarga qilingan qiziqishni ko’rsatish uchun juda kerakli. Algoritmlarni en yomon holatlarda baholash uchun qo'shimcha test kengaytmasi kamida bir nechta kundan.o'tkaziladi. Va ortacha holatlarda baholash uchun esa ko'p marta bajariladigan baholash huquqi ishlatiladi.
Misol uchun, bir dasturda qaralgan sodda kvadratik algoritmning ustuvor va yomon bir xususiyati o'z ichiga oladi.
Agar bir faylda ro'yxatdagi elementlar soni n bo'lsa, bunday algoritm murakkabligi O(n^2) ga teng bo'ladi. Agar n=10 000 bo'lsa, shu algoritm 10000 x 10000 = 100 000 000 bo'lish lozim. Bu algoritmda biroro qiymat yetarli ko'p marta baholash yordamida ko'rsatilishi mumkin.
Boshqa bir misol, ba'zi aniqlanmasa, mutlaqo to’g’ri emas, vaqtini ko’p sarflagan va harakatlar ketma-ket qilgan algoritm hujjatlari bo’lishi mumkin. Bunday holatlarda, ushbu algoritmlarni ishga tushirishdan avval baholash kerak. Algoritmlarni bu tarzda baholash uchun, umumiy hisoblab chiqarishlar bo’ladi, chunki algoritm ishini uzatish uchun foydalaniladigan haydovchiliklar va resurslarga ega bo’lishi mumkin.Bunday murakkablikdagi algoritmlar tijoratda va boshqa sohalarda juda qiyin hisoblanadi, chunki ularning ishga tushirish vaqtida shunchaki ko'p vaqt sarflash kerak bo'lgan bog'liq operatsiyalar bor. Shunga qaramay, murakkablikning kichikroq darajadagi algoritmlar hech qachon murakkab bo'lmaydi va ularning ishga tushirish vaqtida kamida bog'liq operatsiyalar almashishi kerak.
Dostları ilə paylaş: |