溫馨提示×

c語言折半查找代碼怎么寫

小億
121
2023-11-28 13:35:56
欄目: 編程語言

以下是一個(gè)使用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;
        }
    }
    
    // 當(dāng)查找不到目標(biāo)元素時(shí),返回-1表示查找失敗
    return -1;
}

int main() {
    int arr[] = {5, 10, 15, 20, 25, 30, 35, 40, 45, 50};
    int target = 30;
    int size = sizeof(arr) / sizeof(arr[0]);
    
    int result = binarySearch(arr, 0, size - 1, target);
    if (result == -1) {
        printf("目標(biāo)元素 %d 未找到\n", target);
    } else {
        printf("目標(biāo)元素 %d 在數(shù)組中的索引為 %d\n", target, result);
    }
    
    return 0;
}

運(yùn)行以上代碼,將輸出 “目標(biāo)元素 30 在數(shù)組中的索引為 5”,表示目標(biāo)元素30在數(shù)組中的索引位置為5。如果目標(biāo)元素不在數(shù)組中,則輸出 “目標(biāo)元素 30 未找到”。

0