二分法簡單程式碼
阿新 • • 發佈:2018-11-11
//針對已經排序好的陣列進行查詢(對上面程式碼進行的改進) 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);*/ }
希望對你有所幫助!