亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言怎么用遞歸實現二分法查找

小億
114
2024-03-18 10:10:57
欄目: 編程語言

下面是使用遞歸實現二分法查找的C語言代碼示例:

#include <stdio.h>

int binarySearch(int arr[], int low, int high, int key) {
    if (low > high) {
        return -1; // key not found
    }
    
    int mid = low + (high - low) / 2;
    
    if (arr[mid] == key) {
        return mid; // key found at index mid
    } else if (arr[mid] < key) {
        return binarySearch(arr, mid + 1, high, key); // search in the right half
    } else {
        return binarySearch(arr, low, mid - 1, key); // search in the left half
    }
}

int main() {
    int arr[] = {2, 4, 6, 8, 10, 12, 14, 16};
    int n = sizeof(arr) / sizeof(arr[0]);
    int key = 10;
    
    int index = binarySearch(arr, 0, n - 1, key);
    
    if (index != -1) {
        printf("Element found at index: %d\n", index);
    } else {
        printf("Element not found\n");
    }
    
    return 0;
}

在上面的代碼中,binarySearch函數使用遞歸的方式實現了二分法查找。函數接受一個整型數組arr、查找范圍的起始下標low、結束下標high和要查找的關鍵值key作為參數。函數首先計算中間元素的下標mid,然后分別判斷arr[mid]key的大小關系,根據不同情況選擇在左半部分或右半部分繼續查找,直到找到目標元素或查找范圍為空。

main函數中,我們定義了一個整型數組arr,并調用binarySearch函數來查找key=10在數組中的位置。最終輸出查找結果。

0
常宁市| 红安县| 屏边| 新巴尔虎左旗| 陆川县| 富顺县| 福建省| 磐石市| 宣城市| 六枝特区| 壤塘县| 龙井市| 获嘉县| 嘉定区| 县级市| 新沂市| 怀集县| 昌江| 丽水市| 旅游| 永吉县| 准格尔旗| 上杭县| 云阳县| 桂阳县| 定日县| 庐江县| 丰镇市| 章丘市| 宁乡县| 依安县| 张北县| 凤冈县| 临湘市| 济阳县| 鹤岗市| 贵阳市| 金川县| 宜州市| 武宁县| 西华县|