#include <stdio.h> /** * * @param arr 数组必须是有序的 * @param len 数组的长度 * @param tagger 要查找的数据 * @return 要查找的数据的下标,没有就返加-1 */ int binarySearch(int arr[], int len, int tagger) { int L = 0, R = len - 1; int mid; while (L <= R) { mid = (L + R) / 2; if (arr[mid] == tagger) return mid; if (arr[mid] < tagger) L = mid + 1; else R = mid - 1; } return -1; } int main() { int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int i = binarySearch(arr, 10, 4); printf("index = %d\n", i); printf("value = %d\n", arr[i]); return 0; }