河南做网站哪个平台好,网站进度条特效,wordpress 媒体库插件,pdf文件打印乱码目录 1解题思路#xff1a;
2代码所示#xff1a;
3运行代码#xff1a;
4习题不难#xff0c;多刷题#xff0c;练思路#xff0c;最重要的不是学会了一道题#xff0c;而是掌握其编程思想#xff1b; 1解题思路#xff1a;
折半查找法#xff08;half-interval…目录 1解题思路
2代码所示
3运行代码
4习题不难多刷题练思路最重要的不是学会了一道题而是掌握其编程思想 1解题思路
折半查找法half-interval search
优点比较次数少查找速度快平均性能好
缺点是要求待查表为有序表且插入删除困难。因此折半查找方法适用于不经常变动而查找频繁的有序列表。
注意折半查找法仅适用于对已有顺序的数组、数据进行操作
例如要在数组arr[]{8,7,9,6,4,1,2,5,3,10,11};中查找key7的位置首先我们要先将数组arr中的数据成员进行排序。arr[]{1,2,3,4,5,6,7,8,9,10,11};
如图所示将该组数据小端记作low大端记作high,中间值记作mid; 二分法查找时将所查找的key与mid比较例如key7即可缩小查找范围在mid和high之间
如图所示即可找到keylow7; 2代码所示
#includestdio.h
#define n 15
int main()
{int arr[n]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},x,i1,between,left,right,a; printf(输出要查找的数\n);scanf(%d,x);left0;right14;while(leftright)//思想利用数组的角标不止可以利用数组元素 {a(leftright)/2;if(arr[a]x){printf(该数是该数组的第%d个元素,a1);break;}else if(xarr[a]){righta;}else lefta;if(arr[left]arr[right]){printf(无此数);break; }}return 0;
}
首先对数组进行定义并输入要查找的数值 int arr[n]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},x,i1,between,left,right,a; printf(输出要查找的数\n);scanf(%d,x);
然后利用循环和数组的角标进行循环二分查找 left0;right14;while(leftright)//思想利用数组的角标不止可以利用数组元素 {a(leftright)/2;if(arr[a]x){printf(该数是该数组的第%d个元素,a1);break;}else if(xarr[a]){righta;}else lefta;if(arr[left]arr[right]){printf(无此数);break; }}
最后运行即可。
3运行代码 4习题不难多刷题练思路最重要的不是学会了一道题而是掌握其编程思想
但是首先要多刷题
C语言是一门面向过程的、抽象化的通用程序设计语言广泛应用于底层开发使用C语言可以以简易的方式编译、处理低级存储器。
感谢各位的阅读以上就是“C语言怎么”的内容了经过本文的学习后相信大家对C语言这一问题有了更深刻的体会具体使用情况还需要大家实践验证。这里是CSDN杰克尼小编将为大家推送更多相关知识点的文章欢迎关注
制作不易望点个关注后续我会持续更新c题库关注我不迷路有不会的私聊我
请不要相信胜利就像山坡上的蒲公英一样唾手可得但是请相信世上总有一些美好值得我们全力以赴。
若没有习题的可以看看我的主页比如说C语言不可不敲系列跳水比赛排名问题-CSDN博客
这道题就是一个很好的思路