您的位置:首页 > 编程语言 > Java开发

二分查找算法(java)二分搜索

2017-12-04 16:41 169 查看
二分搜索技术
问题描述:
n个排序好的元素。在这n个元素中找出一特定元素x
问题思考:
首先给定的是排序好的  其次是利用排序好的这个条件,二分法搜索充分利用这个已知排序好的条件
算法实现:
import java.util.Scanner; 

 
class BinSearch{ 

//二分搜索法算法
   public
static int
binarySearch(int
a[], int
x, int
n){ 
        int
left = 0; 
        int
right = n - 1; 
        while(left <=
right){  //跳出条件
            int
middle = (left+
right)/2; 
           // int middle = left + (right - left)/2; 

            if(x ==
a[middle])
return
middle; 

            if(x >
a[middle])
left = middle + 1; 
            else
right = middle- 1; 

        } 
        return -1; 

   } 
}   
 
//主类
public
class
_BinarySearch { 
   staticScanner
cin= newScanner(System.in);     

   public
static void
main(String[]
args){ 
        System.out.print("Please input a integer(the size of array):   ");          

        int
sizeOfArray = cin.nextInt();   

        int
a[] = new
int
[sizeOfArray];  
        System.out.print("Please input " +
sizeOfArray + " sorted  numbers: "); 

        for(int
i = 0; i <
sizeOfArray; i++)  
            a[i] =
cin.nextInt();            
        System.out.print("Please input the number you want to search:   "); 

        int
x = cin.nextInt();    
        System.out.print("Location: " + BinSearch.binarySearch(a,
x, sizeOfArray)); 

   }    
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: