以下是一個簡單的C語言二分查找的代碼示例:
#include <stdio.h>
int binarySearch(int arr[], int n, int target) {
int left = 0;
int right = n - 1;
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;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int index = binarySearch(arr, n, target);
if (index != -1) {
printf("目標元素的索引為:%d\n", index);
} else {
printf("目標元素未找到\n");
}
return 0;
}
在上面的代碼中,我們定義了一個binarySearch
函數,該函數接受一個有序數組arr
、數組的大小n
以及要查找的目標元素target
作為參數。函數通過維護一個左指針left
和一個右指針right
,不斷將搜索范圍縮小,直到找到目標元素或搜索范圍為空。
在main
函數中,我們定義了一個有序數組arr
,并指定要查找的目標元素為7。然后我們調用binarySearch
函數進行查找,并根據返回的索引結果進行輸出。
注意:在進行二分查找之前,要確保數組是有序的。