二分法算法代码
Posted 薄荷*糖糖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分法算法代码相关的知识,希望对你有一定的参考价值。
1、二分法
二分法又叫折半查找,优点是比较次数少,查找速度快,平均性能好;
其缺点是要求待查表为有序表,且插入删除困难。
一般有两种实现方式:
递归方式和非递归方式
(1)非递归方式:
public static void binarySearch(int[] arr,int des){
int low=0;
int high=arr.length-1;
while(low<=high){
int middle=(low+high)/2;
if(arr[middle]>des){
high=middle-1;
}else if(arr[middle]<des){
low=middle+1;
}else{
return middle;
}
}
}
(2)递归方式:
public static int binarySearch(int[] arr,int des,int low,int high){
int middle = (low+high)/2;
if (des<arr[low]||des>arr[high]||low>high) {
return -1;
}
if (arr[middle]<des) {
return binarySearch(arr, des, middle+1, high);
}else if (arr[middle]>des) {
return binarySearch(arr, des, low, middle-1);
}else{
return middle;
}
}
以上是关于二分法算法代码的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]