yoki -1 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);
Do'stlaringiz bilan baham: |