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

溫馨提示×

C語言怎么實現二分法查找算法

小億
85
2023-11-28 14:35:42
欄目: 編程語言

二分法查找算法是一種高效的查找算法,適用于已經排好序的數組。下面是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) {
            left = mid + 1;
        }
        // 目標值在左半邊
        else {
            right = mid - 1;
        }
    }

    // 沒有找到目標值
    return -1;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int target = 6;
    int n = sizeof(arr) / sizeof(arr[0]);

    int result = binarySearch(arr, 0, n - 1, target);

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

    return 0;
}

在上述代碼中,binarySearch 函數實現了二分法查找算法。它通過傳入的參數 leftright 來確定當前查找范圍的左右邊界,然后通過計算中間位置 mid 來確定需要查找的值在左半邊還是右半邊。如果找到目標值,就返回其索引;如果沒有找到目標值,就返回 -1。

main 函數中,我們定義了一個有序數組 arr,并設定了目標值 target。然后,我們調用 binarySearch 函數來查找目標值在數組中的索引,并根據返回結果進行輸出。

0
岳阳县| 静乐县| 玉龙| 石嘴山市| 灵寿县| 牡丹江市| 宝清县| 黑龙江省| 界首市| 庆阳市| 佛坪县| 博野县| 淮安市| 普兰县| 克拉玛依市| 弥渡县| 射洪县| 瑞安市| 卫辉市| 思茅市| 辛集市| 莱芜市| 麟游县| 汾西县| 定南县| 凉山| 根河市| 安陆市| 专栏| 博乐市| 色达县| 乡城县| 嘉义县| 桑植县| 东源县| 日照市| 鄂尔多斯市| 宾阳县| 广宗县| 云南省| 利津县|