/*
折半查找
@param len 數組長度
@param key 要查找的數
@return 要查找的數的位置,如果找不到返回-1
*/
int searchItem(int arr[],int len,int key){
//先定義變量
int low = 0,high = len-1,mid;
//循環
while (low<=high) {
//計算mid的位置
mid = (low+high)/2;
//判斷key a[mid]
if(key>arr[mid]){
//key>a[mid] low = mid+1;
low = mid+1;
}else if(key<arr[mid]){
//key<a[mid] high = mid-1;
high = mid - 1;
}else{
//key==a[mid] return min;
return mid;
}
}
//下面是查找不到的情況
return -1;
}
/*
折半查找
插入一個數 返回index
*/
int insertItem(int arr[],int len,int key){
//先定義變量
int low = 0,high = len-1,mid;
//循環
while (low<=high) {
//計算mid的位置
mid = (low+high)/2;
//判斷key a[mid]
if(key>arr[mid]){
//key>a[mid] low = mid+1;
low = mid+1;
}else if(key<arr[mid]){
//key<a[mid] high = mid-1;
high = mid - 1;
}else{
//key==a[mid] return min;
return mid + 1;
}
}
//下面是查找不到的情況
return low;
}