C语言折半查找法的超详细讲解

C语言折半查找法的超详细讲解

折半查找法仅适用于对已有顺序的数组、数据进行操作!!!(从小到大)自我总结:折半查找法就是相当于(通过改变low或high的大小)把中间位置指到了key那个数那里,所以mid应该处于循环里面,即mid=(high+low)/2。注意:low,mid,high都要与下标绑定,也就是说它们就是下标。且循环条件是:high>=low.

同时注意:⑴若原来数组是由小到大排列的则:

      mid=(high+low)/2;             if(key<a[mid])//说明要找的值在左边             high=mid-1;             else if(key>a[mid])//说明要找的值在mid右边             low=mid+1;//最小值的位置往右进一位

㈡若原来数组是由大到小排列的则:

mid=(high+low)/2;             if(key>a[mid])//注意是由大到小排列 ,所以此时key在a【mid】 左边,故high=mid-1 ;             high=mid-1;             else if(key<a[mid])//注意是由大到小排列,所以此时key在a【mid】右边,故low=mid+1;             low=mid+1;

当然在下面这个代码中,也可以用选择排序法和冒泡法来对任意数组进行排序,然后在应用此函数,保证折半查找法的前提是排好序了。

#include<stdio.h> void zb(int key,int a[],int n)//key表示要找的数,a表示数组,n表示数组元素个数 { int i,high,low,mid; int count1=0,count=0; low=0; high=n-1; while(high>=low)//保证右下标不小于左下标 { count++; mid=(high+low)/2;//总的来说变得是中间位置相当于把中间位置移到了key那个数那里,所以mid应该处于循环里面 if(key<a[mid])//说明key在a【mid】的左半边 ,那么最右边的high下标就可以在下标mid基础上往左进一个单位了 high=mid-1; else if(key>a[mid])//说明key在a【mid】的右半边 ,那么最左边的low下标就可以在下标mid基础上往右进一个单位了 low=mid+1; if(key==a[mid]) { printf("元素找到了!!!\n一共查找了%d次\n它处于a[%d]位置上\na[%d]=%d\n",count,mid,mid,key); count1++; break; } } if(count1==0) printf("元素不存在!!!\n"); } int main () { int key,n,a[100]; int i; void zb(int key,int a[],int n);//声明定义函数 printf("请输入数组元素个数:\n"); scanf("%d",&n); printf("请输入(从小到大)所有数组元素:\n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("请输入要查找的数:\n"); scanf("%d",&key); zb(key,a,n); printf("\n"); return 0; }

总结

到此这篇关于C语言折半查找法的文章就介绍到这了,更多相关C语言折半查找法内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    上下标快捷键|上下标快捷键怎么打

    上下标快捷键|上下标快捷键怎么打,,上下标快捷键怎么打上标快捷键:首先,选中需要加上标的字符,然后使用Word快捷键“ Ctrl + Shift + (加号)+

    雷蛇设置宏|雷蛇设置宏循环

    雷蛇设置宏|雷蛇设置宏循环,,雷蛇设置宏循环使用雷蛇软件设置宏驱动的方法如下:1、今天小编就以雷蛇鼠标为例,介绍宏定义的使用。当刚买的鼠

    下标快捷键ps|下标快捷键快

    下标快捷键ps|下标快捷键快,,下标快捷键快word下标快捷键怎么用方法/步骤:1.双击打开需要使用快捷键输入下标的word文档。2.选定需要下标

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的

    potplayer设置|potplayer设置循环播放

    potplayer设置|potplayer设置循环播放,,potplayer设置循环播放戴尔电脑上面比较好用的软件有哪些?萊垍頭條敬业签是电脑/移动端/多端云同步

    数列求和快捷键|数组求和快捷键

    数列求和快捷键|数组求和快捷键,,数组求和快捷键1,这是文本型数组直接运算 不可能 除非单个的取出来分割后转数值型,再找相同的X[1],进行X[2

    c4d语言设置|c4d汉语设置

    c4d语言设置|c4d汉语设置,,1. c4d汉语设置mac版的C4D是这样的,中文字体是有的,但是是以拼音的形式存在,比如黑体就是ht。中文字体以拼音方式