Mustaqil ish Bajardi: Ziyoyidinova Mastura Tekshirdi: Sharipov
Chiziqli yoki ketma-ket qidiruv
Download 0.69 Mb.
|
Ma\'lumotlar tuzilmasi (Автосохраненный)
- Bu sahifa navigatsiya:
- Binar yoki oraliqni teng ikkiga bo’lish orqali qidiruv
Chiziqli yoki ketma-ket qidiruv
M a’lumotlarning birinchi elementidan oxirgi ementiga qadar ketma-ket qarab chiqiladi va har qadamda element qidirilayotgan kalit bilan taqqoslanadi. Agar element kalitga mos bo’lsa jarayon to’xtatiladi. Agar oxirgi element ko’rib chiqilganda jarayon to’xtatilmagan bo’lsa u xolatda ma’lumot topilmaganligini anglatadi. Massivda ketma-ket qidiruv algoritmi samaradorligini bajarilgan taqqoshlashlar soni M bilan aniqlash mumkin. Mmin = 1, Mmax= n. Agar ma’lumotlar massiv yacheykasida bir xil ehtimollik bilan taqsimlangan bo’lsa, u holda Mo’rt=(n + 1)/2 bo‟ladi. Misol: #include using namespace std; int search (int arr[], int N, int key) { for (int i = 0; i < N; i++) if (arr[i] == key) return i; return -1;} int main() { int A[9] = {10,50,30,70,80,60,20,90,40}; cout << search (A,9,20); return 0;} Binar yoki oraliqni teng ikkiga bo’lish orqali qidiruv Berilgan massiv o’rta elementi tanlanadi, va qidirilayotgan kalit bilan taqqoslanadi. Аgar tanlangan element qiymati qidirilayotgan kalit qiymatiga teng bo’lsa, u holda qidiruv yakunlanadi, agar tanlangan elementi qiymati qidirilayotgan kalit qiymatidan kichik bo’lsa, u holda chap tomonda elementlar kelgusi qidiruvdan chiqarib yuboriladi va algoritm qayta ishga tushadi. Xuddi shuningdek, agar tanlangan elementi qiymati qidirilayotgan kalit qiymatidan katta bo’lsa u holda o’ng tomonda elementlar kelgusi qidiruvdan chiqarib yuboriladi va algoritm qayta ishga tushadi. Agar ikkita chegara orasida elementlar qolmasa u xolatda ma’lumot topilmaganligini anglatadi va jarayon to’xtatiladi. Bu usulda Mmin= 1, Mmax= . Agar ma’lumotlar massiv yacheykasida bir xil ehtimollik bilan taqsimlangan bo’lsa, u holda Mo’rt= . Lekin bu usulni tartiblanmagan massiv uchun ishlatib bo’lmaydi. Suning uchun avval massivni osish boyicha saralab keyin ishlatish tafsiya etiladi. M isol: #include using namespace std; int search(int arr[], int N, int key) {int L=0, R=N-1, mid=(L+R)/2; while (L<=R) {if (arr[mid] == key) return mid; if (arr[mid] < key) L=mid+1; else R = mid-1; mid=(L+R)/2;} return -1;} int main() { int A[10] = {2,5,8,12,15,23,38,56,72,91}; cout << search (A,10,23); return 0;} Download 0.69 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling