`
java-mans
  • 浏览: 11391395 次
文章分类
社区版块
存档分类
最新评论

二分查找算法

 
阅读更多

进行二分查找时候首先要确保原数字序列是有顺序的

算法如下:

package com.huawei;

public class Test1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] array={1,2,3,4,6,11,14,15};
		int pos=BinarySearch(array,6);
		if(pos!=-1)
		System.out.println("找到该元素位于第"+(pos+1)+"个");

	}
	public static int BinarySearch(int[] array,int targetNum){
		int len=array.length-1;
		if(array.length==0){
			return -1;
		}
		int startPos=0;
		int endPos=len;
		int halfPos=(startPos+endPos)/2;
		while(startPos<=endPos){
			if(targetNum==array[halfPos]){
				return halfPos;
			}
			else if(targetNum>array[halfPos]){
				startPos=halfPos+1;
			}
			else if(targetNum<array[halfPos]){
				endPos=halfPos-1;
			}
			halfPos=(startPos+endPos)/2;
		}
		return  halfPos;

	}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics