O’qituvchi: djangazova k. Tayyorladi: ruzikulova h. Guruh: 042-21 variant: 13 toshkent 2023
Download 73.41 Kb.
|
Хилола
int binarqidiruv(int arr[], int l, int r, int x)
{ if (r >= l) { int mid = l + (r - l)/2; // Agar element x ga teng bo'lsa // o'zi qaytadi 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 Download 73.41 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling