c语言二分法如何实现查找数组元素

c语言二分法实现查找数组元素的方法:1、递归算法,代码为【if(a[mid] == key) return mid】;2、非递归算法,代码为【while( left

c语言二分法如何实现查找数组元素

本教程操作环境:windows7系统、c99版本,DELL G3电脑。

c语言二分法实现查找数组元素的方法:

递归算法

#include//二分法实现数组查找 //int recurbinary(int *a, int key, int low, int high){    int mid;    if(low > high)        return -1;    mid = (low + high)/2;    if(a[mid] == key) return mid;    else if(a[mid] > key)         return recurbinary(a,key,low,mid -1);    else         return recurbinary(a,key,mid + 1,high); }

非递归算法

立即学习“C语言免费学习笔记(深入)”;

int binary( int *a, int key, int n ){    int left = 0, right = n - 1, mid = 0;    mid = ( left + right ) / 2;    while( left < right && a[mid] != key )    {        if( a[mid]  key ) {            right = mid - 1;        }        mid = ( left + right ) / 2;    }    if( a[mid] == key )        return mid;    return -1;} int main(void){int a[10] = {2,4,6,8,10,12,14,16,18,20},t,k,f;scanf("%d",&t);k = recurbinary(a,t,2,20);f = binary(a,t,10);  //非递归算法if(k == -1){printf("不存在此数n");}else{printf("%-5d是数组第%d个元素n%-5d数组的第%d个元素",k,k+1,f,f+1);} return 0;}

【相关学习推荐:C语言教程视频】

以上就是c语言二分法如何实现查找数组元素的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1434900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 10:13:06
下一篇 2025年12月17日 10:13:17

相关推荐

发表回复

登录后才能评论
关注微信