91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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

小億
146
2023-10-30 12:04:42
欄目: 編程語言

遞歸實現二分法查找的思路如下:

  1. 首先定義一個函數,接收一個有序數組、待查找的元素、數組的起始位置和結束位置作為參數。
  2. 在函數中,首先檢查起始位置是否大于結束位置,如果是,則說明待查找的元素不存在于數組中,返回-1。
  3. 計算數組的中間位置mid,將數組的中間元素與待查找的元素進行比較。
  4. 如果中間元素等于待查找的元素,則說明找到了,返回mid。
  5. 如果中間元素大于待查找的元素,則在左半部分繼續進行二分查找,即遞歸調用函數,起始位置不變,結束位置變為mid-1。
  6. 如果中間元素小于待查找的元素,則在右半部分繼續進行二分查找,即遞歸調用函數,起始位置變為mid+1,結束位置不變。
  7. 重復步驟3至6,直到找到待查找的元素或起始位置大于結束位置。

下面是一個用遞歸實現二分法查找的示例代碼:

#include <stdio.h>

int binarySearch(int arr[], int target, int start, int end) {
    if (start > end) {
        return -1;
    }

    int mid = (start + end) / 2;
    if (arr[mid] == target) {
        return mid;
    } else if (arr[mid] > target) {
        return binarySearch(arr, target, start, mid - 1);
    } else {
        return binarySearch(arr, target, mid + 1, end);
    }
}

int main() {
    int arr[] = {1, 3, 5, 7, 9};
    int target = 5;
    int result = binarySearch(arr, target, 0, sizeof(arr) / sizeof(arr[0]) - 1);
    if (result == -1) {
        printf("Element not found\n");
    } else {
        printf("Element found at index %d\n", result);
    }
    return 0;
}

以上代碼中,我們定義了binarySearch函數來實現二分法查找,然后在main函數中調用該函數進行查找。輸出結果為Element found at index 2,表示在給定數組中找到了待查找的元素,并返回其索引位置為2。

0
徐闻县| 德惠市| 马公市| 宣汉县| 南涧| 改则县| 皮山县| 张家川| 东兰县| 万宁市| 福贡县| 昌宁县| 商水县| 堆龙德庆县| 启东市| 连江县| 延吉市| 防城港市| 定南县| 巴中市| 庆元县| 通城县| 阿拉尔市| 瓦房店市| 沧源| 寻乌县| 历史| 秦皇岛市| 景宁| 齐齐哈尔市| 绍兴县| 方正县| 宁晋县| 高雄市| 宜宾县| 和平县| 石狮市| 晋宁县| 永吉县| 雷州市| 登封市|