美文网首页
用java实现二分搜索<算法分析>

用java实现二分搜索<算法分析>

作者: 咬烂笔杆子 | 来源:发表于2019-11-05 16:36 被阅读0次

    实验目的:

    1、复习java编程;
    2、掌握二分搜索技术的基本原理;
    3、掌握使用java程序进行二分搜索的方法。

    实验步骤:

    1、由用户输入5个以上的整数;
    2、利用二分搜索算法完成对数组的搜索。

    package erfenfa;
    import java.util.Scanner;
    public class erfen
    {
        static int key;
        public static void main(String[] args)
        {
            //数组的输入
            System.out.println("请输入数组中的8个元素:");
            int[] a=new int [8];
            Scanner scan=new Scanner(System.in);
            for(int i=0;i<8;i++)
            {  
                a[i]=scan.nextInt();
            }
             
            //要查找的元素输入
            System.out.println("请输入要查找的元素:");
             Scanner shu = new Scanner(System.in);
             key= shu.nextInt();
              
            /*数组的输出提示*/
            System.out.print("你输入的数组是:\n");
            for(int b=0;b<8;b++)
             {
                System.out.print("["+a[b]+"]");
     
             }
            /*查找元素输出提示*/
                System.out.print("\n你要查找的元素是:\n");
                System.out.print(key);
                 
            /*最终结果的输出*/
               System.out.println("\n目标数的数组下标是:"+binSearch(a, 0, a.length - 1)); 
        }
         
        /*二分查找算法开始*/
        public static int binSearch(int a[], int left, int right) {  
            int mid = (right - left) / 2 + left;  
            if (a[mid] == key) {  
                return mid;  
            }  
            if (left >= right) {  
                return -1;  //在数组中没找到特定元素
            } else if (key > a[mid]) {  
                return binSearch(a, mid + 1, right);   //如果查找的数在数组右半段
            } else if (key < a[mid]) {  
                return binSearch(a, left, mid - 1);   //如果查找的数在数组左半段
            }  
            return -1; //在数组中没找到特定元素
        }
        /*查找算法结束*/
    }
    

    结果如下:

    image image.png

    相关文章

      网友评论

          本文标题:用java实现二分搜索<算法分析>

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