zoukankan      html  css  js  c++  java
  • 用java实现二分搜索<算法分析>

    实验目的:
    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("你输入的数组是:
    ");
        	for(int b=0;b<8;b++)
        	 {
        	    System.out.print("["+a[b]+"]");
    
        	 }
        	/*查找元素输出提示*/
        		System.out.print("
    你要查找的元素是:
    ");
        	    System.out.print(key);
        	    
        	/*最终结果的输出*/
               System.out.println("
    目标数的数组下标是:"+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; //在数组中没找到特定元素
        }
        /*查找算法结束*/
    }
    

     结果如下:

     

  • 相关阅读:
    安全预警-防范新型勒索软件“BlackRouter”
    线程入门
    线程状态
    支付开发总结
    springboot处理date参数
    函数接口
    Excel通用类工具(一)
    Excel通用类工具(二)
    spring bean生命周期
    springboot整合netty(二)
  • 原文地址:https://www.cnblogs.com/soulsjie/p/6829463.html
Copyright © 2011-2022 走看看