1. 程式人生 > >二分法簡單程式碼

二分法簡單程式碼

//針對已經排序好的陣列進行查詢(對上面程式碼進行的改進)
	public static boolean binarySearch(int[]array,int target){
		int left=0;
		int right=array.length-1;//下標
		int mid=(left+right)/2;
		while(array[mid]!=target&&right>left){
			System.out.println("進來"+"中間值為:"+array[mid]);
			if(array[mid]>target){
			  right=mid-1;
			}else if(array[mid]<target){
				 left=mid+1;
		    }
			
			mid=(left+right)/2;
			//判斷在縮小範圍後,新的left或者right是否會將target排除
			if(array[right]<target){
			  break;//若縮小後right比target小,即target不在陣列中
			}else if(array[left]>target){
			    break;//若縮小後left比target大,即target不在陣列中
			}
		}
		return(array[mid]==target);
	}




//main方法測試
public static void main(String[] args) {
		int a[]= {1,2,5,6,7};
		int target=2;
		/**
		 * 二分法
		 */
		/*boolean c=binarySearch(a,target);
		System.out.println("c="+c);*/
		
	}

 

希望對你有所幫助!