二分查找适用于有序的顺序表,时间复杂度为对数级别。
非递归实现:
//非递归
int BinarySearch(int* arr,int len,int key){ //数组、数组长度、关键字
int left = 0;
int right = len - 1;
while(left <= right){
int mid = (left + right)/2;
if(arr[mid] == key) return mid;
else if(arr[mid] > key) right = mid - 1;
else left = mid + 1;
}
return -1; //未找到
} //