您的位置:首页 > 编程语言 > Java开发

用递归实现二分查找 JAVA

2015-10-01 22:26 585 查看
package AlgorithmTest;

import java.util.Arrays;

/**
* Created by dell on 2015/10/1.
*/
public class BinarySearchWithRecusionTest {
public static void main(String[] args) {
int[] array = new int[]{9,8,7,6,5,4,3,2,1};
Arrays.sort(array);
System.out.println(binarySearchWithRecusion(array, 8));
System.out.println(binarySearchWithRecusion(array, 10));
}

public static int binarySearchWithRecusion(int[] array,final int findData){
if (null != array && 0 != array.length){
return binarySearchWithRecusionUnit(array, findData, 0, array.length);
}

return -1;
}

public static int binarySearchWithRecusionUnit(int[] array, final int findData, int begin, int end)
{
if (begin < end){
int mid = (begin + end) / 2;
if (findData == array[mid]){
return mid;
}else{
if (findData > array[mid]){
return binarySearchWithRecusionUnit(array, findData, mid + 1, end);
}else{
return binarySearchWithRecusionUnit(array, findData, begin, mid - 1);
}
}
}else{
return -1;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: