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

溫馨提示×

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
富民县| 安乡县| 阿拉善左旗| 宁津县| 焉耆| 合川市| 光山县| 铁岭市| 射洪县| 赞皇县| 黄梅县| 高陵县| 西丰县| 公主岭市| 沾益县| 喀什市| 正蓝旗| 乐陵市| 雷州市| 唐河县| 江永县| 汝州市| 河源市| 长乐市| 嘉定区| 开化县| 呼和浩特市| 济源市| 怀安县| 柯坪县| 平江县| 白城市| 赣榆县| 吉林市| 白山市| 攀枝花市| 宜阳县| 腾冲县| 卢龙县| 遂川县| 三原县|