17.Qidiruv usullarining samaradorligi: ketma-ket va indeksli ketma-ket qidiruv usullari samaradorligini tahlil qiling.
Taqqoslashlar soni qanchalik kam bo’lsa, qidirish algoritmining samaradorligi shuncha yuqori bo’ladi.
Massivda ketma-ket qidirish samaradorligi quyidagicha:
C = 1 ÷ n, C = (n + 1)/2. Ro’yxatda ketma-ket qidirish samaradorligi ham xuddi shunday. Ma’lumotlarni massiv va ro’yxat ko’rinishlarda tashkil etishning o’z afzalligi va kamchiliklari mavjud, bog’langan ro’yxatlarda qidirishdagi taqqoslashlar soni ham massivdagi qidirish bilan bir xil bo’ladi.
Qidirish maqsadi quyidagi protseduralarning bajarilishini ta’minlaydi:
1) Topilgan yozuvni o’qish.
2) Yozuvni chiqarish jarayonida uni jadvalga qo’yish.
3) Topilgan yozuvni o’chirish.
Birinchi protsedura qolganlari bilan bir vaqtda bajariladi. Ikkinchi va uchinchi protseduralar ro’yxatli tuzilmalar uchun ancha samaraliroq (massivda elementlarni siljitish kerak).
Agar massivda elementlarni siljitishlar soni k ga teng deb olsak, u holda k=(n + 1)/2.
18. Topilgan elementni ro’yxat boshiga qo’yish usulida qidiruv algoritmini tushuntirib bering.
Bu usulda topilgan element ro’yxatda o’zidan bitta oldingi element bilan o’rin almashtiriladi. Agarda mazkur elementga ko’p murojaat qilinsa, bittadan oldinga surilib borib natijada ro’yxat boshiga o’tkaziladi.
Bu yerda, r – ishchi ko’rsatkich, q – yordamchi ko’rsatkich (r dan bitta qadam keyingi), s - yordamchi ko’rsatkich (q dan ikkita qadam keyingi)
Ushbu usul nafaqat ro’yxatda, balki massivda ham qulay (sababi faqatgina ikkita yonma-yon turgan element o’rin almashtiriladi).
19. Binar qidiruv algoritmi va undan foydalanish bo’yicha misol keltiring, uning samaradorligini baholang.