美文网首页Java代码实例
Java_实例_递归实现二分查找法

Java_实例_递归实现二分查找法

作者: Ethan丶Xiao | 来源:发表于2018-04-27 17:55 被阅读0次

import java.util.Arrays;

/**
 * 递归实现二分查找法
 * @author 肖
 *
 */
public class RankTest {
/**
 * 
 * @param key
 * @param a 数组
 * @return int 索引
 */
    public static int rank(int key, int[] a) {
        return rank(key, a, 0, a.length - 1);
    }

    public static int rank(int key, int[] a, int lo, int hi) {
        if (lo > hi)    return -1;
        int mid = lo + (hi - lo) / 2;
        
        if (key < a[mid])       return rank(key, a, lo, mid - 1);
        else if (key > a[mid])  return rank(key, a, mid + 1, hi);
        else                    return mid;
    }

    public static void main(String[] args) {
        int[] b = {1,3,5,7,9,5,4,13,12,14,15};
        Arrays.sort(b);//排序
        System.out.println(rank(15,b));//查找 15 在 b[] 中的索引位置
    }
}

在调用二分查找法之前必须先将数组排序;

相关文章

网友评论

    本文标题:Java_实例_递归实现二分查找法

    本文链接:https://www.haomeiwen.com/subject/sfjilftx.html