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

溫馨提示×

C語言怎么實現二分法

小億
111
2023-11-14 01:37:23
欄目: 編程語言

二分法(Binary Search)是一種在有序數組中查找特定元素的搜索算法。下面是用C語言實現二分法的示例代碼:

#include <stdio.h>

// 二分法查找函數
int binarySearch(int arr[], int left, int right, int target) {
    while (left <= right) {
        int mid = left + (right - left) / 2;

        // 如果目標值等于中間值,直接返回
        if (arr[mid] == target) {
            return mid;
        }

        // 如果目標值小于中間值,在左半部分繼續查找
        if (arr[mid] > target) {
            right = mid - 1;
        }

        // 如果目標值大于中間值,在右半部分繼續查找
        if (arr[mid] < target) {
            left = mid + 1;
        }
    }

    // 目標值不存在于數組中,返回-1
    return -1;
}

int main() {
    int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
    int target = 23;
    int arrSize = sizeof(arr) / sizeof(arr[0]);

    // 在有序數組中查找目標值
    int result = binarySearch(arr, 0, arrSize - 1, target);

    if (result == -1) {
        printf("目標值 %d 不存在于數組中\n", target);
    } else {
        printf("目標值 %d 存在于數組中,索引為 %d\n", target, result);
    }

    return 0;
}

以上代碼中,我們定義了一個binarySearch()函數來實現二分法查找。首先傳入有序數組、左邊界、右邊界和目標值作為參數。在函數內部,通過不斷調整左邊界和右邊界的值,每次取中間值與目標值進行比較,直到找到目標值或者左邊界大于右邊界為止。

main()函數中,我們定義了一個有序數組arr,并將目標值target設置為23。然后調用binarySearch()函數來查找目標值在數組中的索引。最后,根據返回的結果輸出相應的信息。

以上代碼輸出結果為:目標值 23 存在于數組中,索引為 5。表示目標值23在數組中的索引為5。

0
海阳市| 清水河县| 聂拉木县| 石河子市| 柳州市| 大田县| 吉木萨尔县| 鲁甸县| 治县。| 惠安县| 拉孜县| 南华县| 乐亭县| 克拉玛依市| 尖扎县| 安龙县| 多伦县| 霍林郭勒市| 商水县| 新闻| 资源县| 介休市| 双柏县| 辽源市| 林芝县| 涞源县| 青阳县| 山阳县| 都兰县| 东丽区| 密山市| 嵩明县| 临泽县| 平顺县| 平谷区| 买车| 逊克县| 盱眙县| 磴口县| 堆龙德庆县| 萨嘎县|