二分查找序列必须基于已排序数组
二分查找的数组实现(c语言)
#include <stdio.h> int Search(int * p,int n,int length) // n为查找的数字,length为数组长度 { if (length < 0 || p == NULL) { return -1; } int left = 0; int right = length - 1; while (left <= right) { int middle; middle = left + (right-left)/2; if (p[middle] < n) { left = middle + 1; }else if (p[middle] > n) { right = middle - 1; } else { return middle; } } return 0; } int main() { int a[8] = {1,2,3,4,5,6,7,8}; //必须基于已排序数组 int res = Search(a,4,8); printf("%d ",res); return 0; }