二分搜索的递归实现算法

来源:互联网 发布:单片机原理及应用pdf 编辑:程序博客网 时间:2024/06/06 21:43

输入:先输入进行二分搜索元素的个数,然后按大小依次输入(或随机生成,然后排序)每个数字,最后输入要求搜索的元素。
输出:要求搜索元素的下标(下标从0开始!)。
完整代码:

import java.util.Scanner;//二分搜索递归public class Test08 {    public static void main(String[] args) {        try {            Scanner scan=new Scanner(System.in);            System.out.println("请输入元素的个数:");            int n=scan.nextInt();            System.out.println("按顺序输入元素:");            int list[]=new int[n];            for (int i = 0; i <=list.length-1; i++) {                String x = scan.next();                int m=Integer.parseInt(x);                list[i] = m;            }            System.out.println("输入要查找的元素:");            int key=scan.nextInt();            System.out.println(key+"的数组下标:"+binarySearch(list, 0, list.length-1, key));        } catch (Exception e) {            e.printStackTrace();        }    }    public static int binarySearch(int[] value,int begin,int end, int key) {        while (begin <= end) {            int mid = (begin + end) / 2;            if (value[mid] == key) {                return mid;            }            if (value[mid] > key) {                return Test08.binarySearch(value,begin,mid-1, key);            } else {                return Test08.binarySearch(value,mid+1,end, key);            }        }        return -1;    }}

运行结果:
这里写图片描述
是时候顶一下了:
这里只能查找一次,多次查找请移步我的站点
这里写图片描述

0 0
原创粉丝点击