Mavzu: Qidiruv va uning vazifasi. Binar qidiruv algoritmi va dtni tuzing. Misol. Ishdan maqsad



Yüklə 27,79 Kb.
səhifə3/4
tarix07.01.2024
ölçüsü27,79 Kb.
#207997
1   2   3   4
Mavzu Qidiruv va uning vazifasi. Binar qidiruv algoritmi va dtn (1)

if (arr[mid] == x)

return mid;
// Agar element x dan katta bo'lsa,
// u faqat chap qismni oladi

if (arr[mid] > x)

return binarqidiruv(arr, l, mid-1, x);
// Yoki u faqat o'ng qismni oladi


return binarqidiruv(arr, mid+1, r, x);
}

// Bu yerga yetib keladi, qachonki


// x soni massiv ichidan topilmasa


return -1;
}

int main(void)
{

int arr[] = {2, 3, 4, 10, 40};
//massiv ni elementlar sonini topib olayabmiz


int n = sizeof(arr)/ sizeof(arr[0]);

int x = 10;

int natija = binarqidiruv(arr, 0, n-1, x);
(natija == -1)? printf("X soni massivni ichidan topilmadi.")
: printf("X soni massivning %d - elementi.",
natija);


return 0;
}
Dastur ishlaganda " X soni massivning 3 - elementi." degan yozuvni qaytaradi. Sababi massiv elementlari 0 dan boshlanadi.

Binar qidiruvning yana bir ko'rinishi Interative (ingliz tilida ) orqali ko'rsatamiz.


// C++ tilida interative binar qidiruv
#include
// Interative binar qidiruv funksiyasi. U massivdan
// x qaysi o'rinda turganini qaytaradi,
// yoki -1


int binarqidiruv(int arr[], int l, int r, int x)
{

while (l <= r)
{

int m = l + (r-l)/2;
// X o'rtadagi elementga tengmi yo'qmi tekshiramiz


if (arr[m] == x)

return m;
// Agar x katta bo'lsa, chapni hisobga olmaymiz


if (arr[m] < x)
l = m + 1;
// Aks holda o'ng tarafni hisobga olmaymiz

else
r = m - 1;
}
// Dastur bu yerga qachonki x element topilmaganda yetib keladi.



Yüklə 27,79 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2025
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin