二分查找法
Posted 佟学强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找法相关的知识,希望对你有一定的参考价值。
今年是大年初四,晚上闲的没事儿干,在手机上随手写了二分查找法,对有序数组或者循环有序数组都挺管用!
public int binarySearch(int []nums,int key){
return binarySearch(nums,key,0,nums.length);
}
public int binarySearch(int []nums,int key,int left,int right){
int mid = (left + right) / 2;
if(left <= right){
if(nums[mid] == key){
return mid;
}
if(nums[left] <= nums[mid]){
if(key >= nums[left] && key < nums[mid]){
return binarySearch(nums,key,left,mid - 1);
} else {
return binarySearch(nums,key,mid + 1,right);
}
} else {
if(key > nums[mid] && key <= nums[right]){
return binarySearch(nums,key,mid + 1,right);
} else {
return binarySearch(nums,key,left,mid - 1);
}
}
} else
return -1;
}
}
以上是关于二分查找法的主要内容,如果未能解决你的问题,请参考以下文章