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; //在数组中没找到特定元素
        }
        /*查找算法结束*/
    }
    

     结果如下:

     

  • 相关阅读:
    C#实现汉字转换为拼音缩写的代码
    C# 使用xsd文件验证XML 格式是否正确
    C#用天气预报的WebServices
    c# socket通信较完善方案
    C#操作MySQL数据库-----HelloWorld
    c# 自己制作一个简单的项目倒计时器
    C# 制作外挂常用的API
    C#中如何计算时间差?
    C# 图片保存到数据库和从数据库读取图片并显示
    c#加密 可逆与不可逆MD5 加密
  • 原文地址:https://www.cnblogs.com/soulsjie/p/6829463.html
Copyright © 2011-2022 走看看