C 二分查找算法

 
  1. /* 二分查找
  2.  * 在有序集合裏,二分查找是查找元素時間複雜度最低的算法。
  3.  * 算法思想:1、將數組排序(從小到大);2、每次跟中間的數mid比較,如果相等可以直接返回,
  4.  * 如果比mid大則繼續查找大的一邊,否則繼續查找小的一邊。
  5.   輸入:排序好的數組 - sSource[],數組大小 - array_size,查找的值 - key
  6.   返回:找到返回相應的位置,否則返回-1
  7. */
  8. int BinSearch(int sSource[], int array_size, int key)  
  9. {     
  10. int low = 0, high = array_size - 1, mid;  
  11. while (low < high)
  12.     {         
  13.         mid = (low + high) / 2;//獲取中間的位置
  14. if (sSource[mid] == key)              
  15. return mid; //找到則返回相應的位置
  16. if (sSource[mid] < key)            
  17.             high = mid - 1; //如果比key大,則往低的位置查找
  18. else
  19.             low = mid + 1;  //如果比key小,則往高的位置查找
  20.     }     
  21. return -1;    
  22. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章