通过二分查找的方式来寻找整个有序数组中的指定值,主要思想是引入了一个mid变量,用下标为mid的值来和要查询的key比较,如果小于key就把查询的下限变换为mid+1,如果大于key就把查询的下限变换为mid-1,直到找到指定元素或下限大于上限或上限小于下限。递归的实现方式类似,循环的将上限、下限传递到函数中,函数的边界条件就是 下限大于上限或者找到指定元素!
#include <iostream>
#include <stdlib.h>
using namespace std;
int bs_unrecursive(int *a,int length, int key) {
if (a == NULL)
return -1;
int low = 0;
int high = length - 1;
int mid = 0;
while (low <= high)