//顺序查找,查找成功返回下标,否则返回-1;
int sequentialSearch(int r[],int len,int key)
{
if(len <= 0){
return -1;
}
for(int i = 0;i < len;i++){
if(r[i] == key){
return i;
}
}
return -1;
}
//折半查找
int binarySearch(int r[],int low,int high,int key)
{
int mid;
while (low <= high) {
mid = (low + high)/2;
if(r[mid] == key){
return mid;
}
if(r[mid] > key){
high = mid - 1;
}else{
low = mid + 1;
}
}
return -1;
}
//折半查找,递归实现
int binarySearchRec(int r[],int low,int high,int key)
{
if(low > high){
return -1;
}
int mid = (low + high) / 2;
if(r[mid] == key){
return mid;
}
if(r[mid] > key){
return binarySearchRec(r,low,mid - 1,key);
}else{
return binarySearchRec(r,mid + 1,high,key);
}
return -1;
}