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

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

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

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

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

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

递归算法

#include<stdio.h>//二分法实现数组查找 //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); }

非递归算法

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 ) {            left = mID + 1;        } else 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语言二分法如何实现查找数组元素全部内容,希望文章能够帮你解决c语言二分法如何实现查找数组元素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1156753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存