算法——二分查找
Posted 高、远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法——二分查找相关的知识,希望对你有一定的参考价值。
二分查找算法(递归方式):
/**
* 二分查找法(递归)
*
* @param arr
* @param val
*/
public static int binary(int[] arr, int left, int right, int val) {
if (right < left)
return -1;
int mid = (left + right) / 2;
if (val == arr[mid])
return mid;
if (val > arr[mid]) {
return binary(arr, mid + 1, right, val);
} else {
return binary(arr, left, mid - 1, val);
}
}
全部测试代码:
package algorithm.search.binarySearch;
public class Binary {
public static void main(String[] args) {
int[] arr = {-12, -4, -3, 5, 9, 40, 60};
System.out.println(binary(arr, 0, arr.length - 1, 600));
}
/**
* 二分查找法(递归)
*
* @param arr
* @param val
*/
public static int binary(int[] arr, int left, int right, int val) {
if (right < left)
return -1;
int mid = (left + right) / 2;
if (val == arr[mid])
return mid;
if (val > arr[mid]) {
return binary(arr, mid + 1, right, val);
} else {
return binary(arr, left, mid - 1, val);
}
}
}
以上是关于算法——二分查找的主要内容,如果未能解决你的问题,请参考以下文章