标签:
转自: http://www.lishiyu.cn/post/45.html
二分法(折半查找) -----------效率高,但要求序列必须有序-->使用范围小了
/* * 二分查找算法 --- 递归算法 * */ 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; } /* * 二分查找 ------ 非递归算法 * */ int binSearch( int array[], int sizeArray, int key) { int low=0; int high= sizeArray-1; int mid; while(low<=high) { mid =(low + high)/2; if(key == array[mid]) return mid; else if(key < array[mid]) high = mid - 1; else if(key > array[mid]) low = mid + 1; } return -1; }
标签:
原文地址:http://www.cnblogs.com/sheropan/p/5022241.html