溫馨提示×

c語言二分查找算法代碼怎么寫

小億
146
2023-11-28 13:44:04
欄目: 編程語言

以下是一個用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; // 找到目標元素,返回索引
        } else if (arr[mid] < target) {
            left = mid + 1; // 目標元素在右側,更新左邊界
        } else {
            right = mid - 1; // 目標元素在左側,更新右邊界
        }
    }
    return -1; // 沒有找到目標元素,返回-1
}

int main() {
   int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
   int n = sizeof(arr) / sizeof(arr[0]); // 數組長度
   int target = 12; // 目標元素
   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函數,該函數接受一個已經排序的整數數組arr、左邊界left、右邊界right和目標元素target作為參數。函數使用while循環來不斷縮小搜索范圍,直到找到目標元素或搜索范圍為空。如果找到目標元素,返回其索引;否則返回-1表示未找到。

main函數中,我們定義了一個已經排序的整數數組arr,并使用sizeof運算符計算出數組的長度n。我們指定目標元素為12,并調用binarySearch函數進行查找。最后根據返回結果輸出查找結果。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女