0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像处理算法之二分查找

嵌入式单片机 来源:未知 作者:李建兵 2018-03-17 11:29 次阅读

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

search.h

#ifndef _SEARCH_H_
#define _SEARCH_H_
void Search(int *a,int num,int n);
#endif

search.c

#include
#include "search.h"
/**************************************
函数的名:search
函数的功能:二分查找
函数的参数:空
作者:
日期:
******************************************/
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("查找的结果中:这个值为:%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("请输入你要查找的数据: ");
scanf("%d",&num);
Search(a,num,n);
}
return 0;
}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55823
  • 算法
    +关注

    关注

    23

    文章

    4455

    浏览量

    90756

原文标题:二分查找

文章出处:【微信号:qrsworld,微信公众号:嵌入式单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    Java常用排序算法&程序员必须掌握的8大排序算法+二分查找
    发表于 10-19 19:33

    简单的查找算法

    ; } return 0;} 3. 有序数组表的查找:一般使用二分查找。通过判断查找元素与中间元素(mid)的大小来决定下一次的查找在低
    发表于 12-27 22:33

    常见图像传统处理算法是什么?

    常见图像传统处理算法是什么?
    发表于 09-28 08:58

    虹膜图像处理算法

    本文提出了一种基于眼睛图像均衡化的基础上的新型虹膜图像处理算法。此算法对虹膜图像进行了精确的定位,使定位后的虹膜
    发表于 01-13 14:38 21次下载

    基于Simulink的视频与图像处理算法的快速实现

    基于Simulink的视频与图像处理算法的快速实现 主要内容 􀂄视频和图像系统设计􀂙基于模型的设计􀂙视频和图像
    发表于 04-29 14:00 0次下载

    C语言教程之二分查找

    C语言教程之二分查找,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    DSP6748图像处理算法

    DSP6748图像处理算法-StarterWare
    发表于 05-19 15:13 15次下载

    基于DM642的红外测温与图像处理算法研究

    基于DM642的红外测温与图像处理算法研究
    发表于 02-07 21:04 4次下载

    有趣的图像处理算法

    有趣的图像处理算法 在研究的过程中,有时候会碰到很多有意思的图像处理算法算法极具新意,并且能够产生非常有意思的结果。
    发表于 01-12 16:46 4525次阅读

    图像处理算法的优化

    在本视频中,我们将引导您完成典型的用户流程,以优化经典的图像处理算法,即sobel滤波器,从天真的实现开始,再到使用SDSoC以60 FPS,1080分辨率运行的硬件优化系统。
    的头像 发表于 11-29 06:30 2983次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>处理算法</b>的优化

    基于FPGA而实现的视频图像处理算法

    为有效提高视频监控应用领域中多屏幕画面显示的清晰度、分辨度等问题,提出了一种基于FPGA的实时视频图像处理算法
    发表于 09-13 14:53 3525次阅读

    详解C语言二分查找算法细节

    我相信对很多读者朋友来说,编写二分查找算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。
    的头像 发表于 06-22 09:05 2614次阅读
    详解C语言<b class='flag-5'>二分</b><b class='flag-5'>查找</b><b class='flag-5'>算法</b>细节

    单片机车道线检测模型(4)——图像处理算法

    单片机车道线检测模型(4)——图像处理算法
    发表于 11-16 18:06 20次下载
    单片机车道线检测模型(4)——<b class='flag-5'>图像</b><b class='flag-5'>处理算法</b>

    如何理解二分查找算法

    本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。 而且,我们就是要深入细节,比如不等号是否应该带等号,mid 是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的
    的头像 发表于 04-19 11:10 434次阅读
    如何理解<b class='flag-5'>二分</b><b class='flag-5'>查找</b><b class='flag-5'>算法</b>

    FPGA图像处理算法有哪些

    算法分类很杂。于是我就想利用chatgpt帮我把图像算法分类给我整理一下,好家伙,这一下子就捅了马蜂窝。Chatgpt滔滔不绝,于是我就顺着它,整理出了一份图像
    的头像 发表于 09-12 09:59 608次阅读
    FPGA<b class='flag-5'>图像</b><b class='flag-5'>处理算法</b>有哪些