二分查找又稱折半查找,優(yōu)點是比較次數(shù)少,查找速度快,平均性能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動而查找頻繁的有序列表。首先,假設(shè)表中元素是按升序排列,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進一步查找前一子表,否則進一步查找后一子表。重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時查找不成功。
search.h
|
#ifndef _SEARCH_H_ #define _SEARCH_H_ void Search(int *a,int num,int n); #endif |
search.c
|
#include #include "search.h" /************************************** 函數(shù)的名:search 函數(shù)的功能:二分查找 函數(shù)的參數(shù):空 作者: 日期: ******************************************/ void Search(int *a,int num,int n) { int left = 0; int right = n-1; int mid = (left+right)/2; while(a[mid] != num&&left if(a[mid] >num) { right = mid -1; } else if(a[mid] < num) { left = mid +1; } mid = (left+right)/2; } if(a[mid] == num) { printf("查找的結(jié)果中:這個值為:%d ",num); } else { printf("查找沒有這個值 "); } } |
main.c
|
#include #include "search.h" int main () { int a[] = {30,44,66,22,48,89,100,20,1,3,6,88}; int n = sizeof(a)/sizeof(int); int i,j; for(i = 0;i for(j = 0;j if(a[j]>a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } for(i = 0;i printf(" %d",a[i]); } printf(" "); int num; while(1) { printf("請輸入你要查找的數(shù)據(jù): "); scanf("%d",&num); Search(a,num,n); } return 0; } |
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
圖像處理
+關(guān)注
關(guān)注
29文章
1342瀏覽量
59509 -
算法
+關(guān)注
關(guān)注
23文章
4784瀏覽量
98044
原文標(biāo)題:二分查找
文章出處:【微信號:qrsworld,微信公眾號:嵌入式單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
基于Simulink的視頻與圖像處理算法的快速實現(xiàn)
基于Simulink的視頻與圖像處理算法的快速實現(xiàn)
主要內(nèi)容
視頻和圖像系統(tǒng)設(shè)計基于模型的設(shè)計視頻和圖像
發(fā)表于 04-29 14:00
?0次下載
基于C語言二分查找排序源代碼
本文檔內(nèi)容介紹了C語言歸并、選擇、直接插入、希爾、冒泡、快速、堆排序與順序、二分查找排序源代碼,分享給大家供大家參考。
發(fā)表于 01-04 11:24
?1次下載
有趣的圖像處理算法
有趣的圖像處理算法 在研究的過程中,有時候會碰到很多有意思的圖像處理算法,算法極具新意,并且能夠產(chǎn)生非常有意思的結(jié)果。
發(fā)表于 01-12 16:46
?5260次閱讀
圖像處理算法的優(yōu)化
在本視頻中,我們將引導(dǎo)您完成典型的用戶流程,以優(yōu)化經(jīng)典的圖像處理算法,即sobel濾波器,從天真的實現(xiàn)開始,再到使用SDSoC以60 FPS,1080分辨率運行的硬件優(yōu)化系統(tǒng)。
二分搜索算法運用的框架套路
我們前文 我作了首詩,保你閉著眼睛也能寫對二分查找 詳細介紹了二分搜索的細節(jié)問題,探討了「搜索一個元素」,「搜索左側(cè)邊界」,「搜索右側(cè)邊界」這三個情況,教你如何寫出正確無 bug 的二分
如何理解二分查找算法
本文就來探究幾個最常用的二分查找場景:尋找一個數(shù)、尋找左側(cè)邊界、尋找右側(cè)邊界。
而且,我們就是要深入細節(jié),比如不等號是否應(yīng)該帶等號,mid 是否應(yīng)該加一等等。分析這些細節(jié)的差異以及出現(xiàn)這些差異的原因,保證你能靈活準(zhǔn)確地寫出正確的二
圖像處理算法之二分查找
評論