Mustaqil ish Bajardi: Ziyoyidinova Mastura Tekshirdi: Sharipov


Chiziqli yoki ketma-ket qidiruv


Download 0.69 Mb.
bet2/5
Sana18.02.2023
Hajmi0.69 Mb.
#1213728
1   2   3   4   5
Bog'liq
Ma\'lumotlar tuzilmasi (Автосохраненный)

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;}

  1. 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;}


  1. Download 0.69 Mb.

    Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling