首先說說二分查找法。java
二分查找法是對一組有序的數字中進行查找,傳遞相應的數據,進行比較查找到與原數據相同的數據,查找到了返回1,失敗返回對應的數組下標。算法
採用非遞歸方式完成二分查找法。Java代碼以下所示。編程
-
- public static int binarySearch(Integer[]srcArray,int des){
-
- int low=0;
-
- int high=srcArray.length-1;
-
- while(low<=high){
-
- int middle=low+((high-low)>>1);
-
- if(des==srcArray[middle]){
- return middle;
-
- }else if(des<srcArray[middle]){
- high=middle-1;
-
- }else{
- low=middle+1;
- }
- }
- return-1;
- }
-
- }
採用遞歸方式完成二分查找算法。代碼以下所示。數組
- int BinSearch(int Array[],int low,int high,int key)
- {
- if (low<=high)
- {
- int mid = (low+high)/2;
- if(key == Array[mid])
- return mid;
- else if(key<Array[mid])
-
- return BinSearch(Array,low,mid-1,key);
- else if(key>Array[mid])
- return BinSearch(Array,mid+1,high,key);
- }
- else
- return -1;
- }
遞歸思想會被常常用到,更加突出了編程解決問題的高效。spa
摘自:http://blog.csdn.net/lovesummerforever/article/details/24588989.net