0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

圖像處理算法之二分查找

嵌入式單片機(jī) ? 來(lái)源:未知 ? 作者:李建兵 ? 2018-03-17 11:29 ? 次閱讀

二分查找又稱折半查找,優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動(dòng)而查找頻繁的有序列表。首先,假設(shè)表中元素是按升序排列,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。重復(fù)以上過(guò)程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時(shí)查找不成功。

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é)果中:這個(gè)值為:%d ",num);
}
else
{
printf("查找沒(méi)有這個(gè)值 ");
}
}

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("請(qǐng)輸入你要查找的數(shù)據(jù): ");
scanf("%d",&num);
Search(a,num,n);
}
return 0;
}


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1272

    瀏覽量

    56496
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4575

    瀏覽量

    92337

原文標(biāo)題:二分查找

文章出處:【微信號(hào):qrsworld,微信公眾號(hào):嵌入式單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何用C語(yǔ)言實(shí)現(xiàn)高效查找二分法)

    今天給分享一下使用C語(yǔ)言實(shí)現(xiàn)二分算法,主要包含以下幾部分內(nèi)容:二分查找算法介紹二分
    的頭像 發(fā)表于 06-04 08:04 ?825次閱讀
    如何用C語(yǔ)言實(shí)現(xiàn)高效<b class='flag-5'>查找</b>(<b class='flag-5'>二分</b>法)

    Java常用排序算法&程序員必須掌握的8大排序算法+二分查找

    Java常用排序算法&程序員必須掌握的8大排序算法+二分查找
    發(fā)表于 10-19 19:33

    常見(jiàn)圖像傳統(tǒng)處理算法是什么?

    常見(jiàn)圖像傳統(tǒng)處理算法是什么?
    發(fā)表于 09-28 08:58

    基于Simulink的視頻與圖像處理算法的快速實(shí)現(xiàn)

    基于Simulink的視頻與圖像處理算法的快速實(shí)現(xiàn) 主要內(nèi)容 􀂄視頻和圖像系統(tǒng)設(shè)計(jì)􀂙基于模型的設(shè)計(jì)􀂙視頻和圖像
    發(fā)表于 04-29 14:00 ?0次下載

    C語(yǔ)言教程之二分查找

    C語(yǔ)言教程之二分查找,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-22 11:06 ?0次下載

    DSP6748圖像處理算法

    DSP6748圖像處理算法-StarterWare
    發(fā)表于 05-19 15:13 ?15次下載

    基于DM642的紅外測(cè)溫與圖像處理算法研究

    基于DM642的紅外測(cè)溫與圖像處理算法研究
    發(fā)表于 02-07 21:04 ?4次下載

    基于C語(yǔ)言二分查找排序源代碼

    本文檔內(nèi)容介紹了C語(yǔ)言歸并、選擇、直接插入、希爾、冒泡、快速、堆排序與順序、二分查找排序源代碼,分享給大家供大家參考。
    發(fā)表于 01-04 11:24 ?1次下載

    有趣的圖像處理算法

    有趣的圖像處理算法 在研究的過(guò)程中,有時(shí)候會(huì)碰到很多有意思的圖像處理算法,算法極具新意,并且能夠產(chǎn)生非常有意思的結(jié)果。
    發(fā)表于 01-12 16:46 ?4658次閱讀

    圖像處理算法的優(yōu)化

    在本視頻中,我們將引導(dǎo)您完成典型的用戶流程,以優(yōu)化經(jīng)典的圖像處理算法,即sobel濾波器,從天真的實(shí)現(xiàn)開(kāi)始,再到使用SDSoC以60 FPS,1080辨率運(yùn)行的硬件優(yōu)化系統(tǒng)。
    的頭像 發(fā)表于 11-29 06:30 ?3170次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b>的優(yōu)化

    詳解C語(yǔ)言二分查找算法細(xì)節(jié)

    我相信對(duì)很多讀者朋友來(lái)說(shuō),編寫(xiě)二分查找算法代碼屬于玄學(xué)編程,雖然看起來(lái)很簡(jiǎn)單,就是會(huì)出錯(cuò),要么會(huì)漏個(gè)等號(hào),要么少加個(gè) 1。
    的頭像 發(fā)表于 06-22 09:05 ?2763次閱讀
    詳解C語(yǔ)言<b class='flag-5'>二分</b><b class='flag-5'>查找</b><b class='flag-5'>算法</b>細(xì)節(jié)

    二分搜索算法運(yùn)用的框架套路

    我們前文 我作了首詩(shī),保你閉著眼睛也能寫(xiě)對(duì)二分查找 詳細(xì)介紹了二分搜索的細(xì)節(jié)問(wèn)題,探討了「搜索一個(gè)元素」,「搜索左側(cè)邊界」,「搜索右側(cè)邊界」這三個(gè)情況,教你如何寫(xiě)出正確無(wú) bug 的二分
    的頭像 發(fā)表于 08-25 16:06 ?1780次閱讀

    筑基_C_5_對(duì)數(shù)組的二分查找

    C語(yǔ)言泛型編程,實(shí)現(xiàn)對(duì)數(shù)組中某元素的二分查找
    發(fā)表于 12-06 10:21 ?9次下載
    筑基_C_5_對(duì)數(shù)組的<b class='flag-5'>二分</b><b class='flag-5'>查找</b>

    如何理解二分查找算法

    本文就來(lái)探究幾個(gè)最常用的二分查找場(chǎng)景:尋找一個(gè)數(shù)、尋找左側(cè)邊界、尋找右側(cè)邊界。 而且,我們就是要深入細(xì)節(jié),比如不等號(hào)是否應(yīng)該帶等號(hào),mid 是否應(yīng)該加一等等。分析這些細(xì)節(jié)的差異以及出現(xiàn)這些差異的原因,保證你能靈活準(zhǔn)確地寫(xiě)出正確的
    的頭像 發(fā)表于 04-19 11:10 ?572次閱讀
    如何理解<b class='flag-5'>二分</b><b class='flag-5'>查找</b><b class='flag-5'>算法</b>

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

    二分查找算法是在軟件中廣泛應(yīng)用的一種算法,那么在FPGA的設(shè)計(jì)中是否可以用這種算法呢?什么場(chǎng)景下會(huì)可能用到這種
    的頭像 發(fā)表于 09-06 18:26 ?900次閱讀
    FPGA設(shè)計(jì)中<b class='flag-5'>二分</b>法查表<b class='flag-5'>算法</b>的實(shí)現(xiàn)