s
o
u
l
s
j
i
e

用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("你输入的数组是:\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; //在数组中没找到特定元素
    }
    /*查找算法结束*/
}

 结果如下:

 

 

posted @ 2017-05-09 10:42  soulsjie  阅读(527)  评论(0)    收藏  举报
你累吗?累就对了,当你觉得累时证明你在走上坡路!-----Soulsjie - 2016-12-14 08:43