今天給分享一下使用C語言實現二分算法,主要包含以下幾部分內容:
- 二分查找算法介紹
- 二分查找算法使用場景
- 二分查找算法代碼實現
- 二分查找算法實現過程
用C語言實現二分法查找
二分查找也稱折半查找(Binary Search),是一種效率較高的查找方法。
有序且不重復的數組中的元素的查找。
int findNumIndex(int *arr,int len,int n){ int end = len; int start = 0;
//越界 if(n > *(arr+len-1) || n < *(arr)) { return -1; }
while(1) { int midIdx = (end + start) / 2;
if(start == midIdx && *(arr+midIdx) != n) { return -1; }
if(*(arr+midIdx) == n) { return midIdx; } else if(*(arr+midIdx) > n) { end = midIdx; } else { start = midIdx; } }}
首先,假設數組中的元素是按升序排列的,將最中間的數字和要搜索的數字進行比較,如果兩者相等,則搜索成功;否則,從中間數字位置將數組分為兩個子數組,前數組和后數組,如果中間數字大于搜索數字,則進一步查找前數組中的元素,否則在后一個數組中進行查找。重復上述過程,直到找到滿足條件的數字,則搜索成功,或者直到子表所有的數字查找完畢還沒有找到該數字,此時搜索不成功。
-
C語言
+關注
關注
180文章
7614瀏覽量
137712 -
代碼
+關注
關注
30文章
4825瀏覽量
69047
發布評論請先 登錄
相關推薦
評論