算法复杂度O(logn)
算法设计 算法实现#include#define MAX_N 100 //实现单调递增 数组arr中查询数字x是否存在 //数组长度为n,如果找到了,返回x所在数组下标,否则返回1 int binary_search(int *arr, int x, int n){ int min = 0; int max = n-1; int mid; while(min <= max){ //或 mid = (min + max) >> 1; mid = (min + max) / 2; if(arr[mid] == x){ return mid; }else if(arr[mid] > x){ max = mid - 1; }else{ min = mid + 1; } } return -1; } int main(){ int arr[MAX_N + 5] = {0}; int n; scanf("%d", &n); for(int i = 0; i < n; i++){ //arr+i 可以替换为 &arr[i] scanf("%d", arr+i); } int x; while(~scanf("%d", &x)){ printf("search %d from array:%dn", x, binary_search(arr, x, n)); } return 0; }



