二分查找


二分查找也叫折半查找,是一種基本的查找算法,這種查找方法需要待查的表滿足兩個條件

首先,查找表必須使用順序的存儲結構

其次,查找表必須按關鍵字大小有序排列

 

算法的基本思想是:

將查找表中間位置數據元素的關鍵字與給定關鍵字比較,如果相等則查找成功;

否則利用中間元素將表一分為二,如果中間關鍵字大於給定關鍵字,則在前一子表中進行折半查找,否則在后一子表中進行折半查找。重復以上過程直到找到滿足條件的元素,則查找成功;

或直到子表為空為止,此時查找不成功。

 

二分查找的非遞歸寫法:

 1 public int firstOccurrence(int [] nums,int target){
 2         int low = 0,high = nums.length - 1; 3 while(low <= high){ 4 int mid = low + (high-low)/2; 5 if(nums[mid] == target){ 6 return mid; 7  } 8 if(nums[mid] < target){ 9 low = mid+1; 10 }else { 11 high = mid-1; 12  } 13  } 14 return -1; 15 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM