今天給分享一下使用C語言實現(xiàn)二分算法,主要包含以下幾部分內(nèi)容:
- 二分查找算法介紹
- 二分查找算法使用場景
- 二分查找算法代碼實現(xiàn)
- 二分查找算法實現(xiàn)過程
用C語言實現(xiàn)二分法查找
二分查找也稱折半查找(Binary Search),是一種效率較高的查找方法。
有序且不重復(fù)的數(shù)組中的元素的查找。
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; } }}
首先,假設(shè)數(shù)組中的元素是按升序排列的,將最中間的數(shù)字和要搜索的數(shù)字進行比較,如果兩者相等,則搜索成功;否則,從中間數(shù)字位置將數(shù)組分為兩個子數(shù)組,前數(shù)組和后數(shù)組,如果中間數(shù)字大于搜索數(shù)字,則進一步查找前數(shù)組中的元素,否則在后一個數(shù)組中進行查找。重復(fù)上述過程,直到找到滿足條件的數(shù)字,則搜索成功,或者直到子表所有的數(shù)字查找完畢還沒有找到該數(shù)字,此時搜索不成功。
-
C語言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141598 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70674
發(fā)布評論請先 登錄
Labview實現(xiàn)二分法查找數(shù)值區(qū)間
如何用C語言實現(xiàn)面向?qū)ο缶幊?/a>
如何用C程序解一元三次方程根
基于C語言二分查找排序源代碼
基于二分法與移動Sink的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)議

圖像處理算法之二分查找
如何理解二分查找算法

FPGA設(shè)計中二分法查表算法的實現(xiàn)

評論