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

本教程操作环境: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);

}

非递归算法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语言二分法如何实现查找数组元素相关推荐

  1. 力扣(LeetCode)215. 数组中的第K个最大元素(C语言)

    一.环境说明 本文是 LeetCode 215题 : 数组中的第K个最大元素,使用c语言实现. 快速选择.查找无序数组的利器! 测试环境:Visual Studio 2019. 二.代码展示 void ...

  2. c语言中的字节和元素,C语言指向数组元素的指针

    指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...

  3. C语言试题五之计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和

    1.题目 请编写函数function,它的功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和 例子:若我们main函数给出double a[9] = {1, 2, 3, 4, ...

  4. c语言定义数组a10 指定各元素,C语言填空题.doc

    C语言填空题.doc 二.填空题1.C 语言只有 32 个关键字和 9 种控制语句.2.每个源程序有且只有一个 main 函数,系统总是从该函数开始执行 C 语言程序. 3.C 语言程序的注释可以出现 ...

  5. 动态二维数组外圈元素值的和_C语言 | 用指向元素的指针变量输出二维数组元素的值...

    例33:有一个3*4的二维数组,要求用C语言实现指向元素的指针变量输出二维数组个元素的值. 解题思路:二维数组的元素时整型的,它相当于整型变量,可以用int*型指针变量指向它.二维数组的元素在内存中是 ...

  6. c语言数组相同字符主元素,C语言数组考点归纳

    C语言数组考点归纳 下面是百分网小编为大家收集的C语言数组考点归纳,欢迎借鉴学习! 9.1 一维数组的定义.初始化和引用 1.一维数组的定义方式为: 类型说明符 数组名[常量表达式] (1)数组名的命 ...

  7. c语言求比平均值大的元素,c语言 10个元素的数组求平均值并输出比平均值大的数...

    [c语言]编写程序,求数组a中前n个元素的最大值max.最小值min及平均值avg. 是前n个元素么?main(){inti=n,sum=0;max=a[0];min=a[0];for(i=0;ia[ ...

  8. c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...

    matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...

  9. LeetCode 540 Single Element in a Sorted Array 在分类好的数组里寻找单个元素 C语言 异或的巧妙使用

    540. Single Element in a Sorted Array 原题 C语言题解 原题 You are given a sorted array consisting of only in ...

  10. c语言指针引用数组元素,c语言——数组指针和通过指针引用数组元素的方法总结...

    1.数组指针:即指向数组的指针 那么, 如何声明一个数组指针呢? int (* p)[10]; /*括号是必须写的,不然就是指针数组:10是数组的大小*/ 1 拓展:有指针类型元素的数组称为指针数组. ...

最新文章

  1. 2019-4-25 html学习笔记
  2. php实现按时间排序_按时间排序的问题?
  3. ubuntu20 编译dpdk错误 -Werror=address-of-packed-member
  4. java中使用jython_将Jython嵌入到您的Java代码库中
  5. bmp调色板颜色信息重复_如何更改 Linux 终端颜色主题 | Linux 中国
  6. MySQL(7)索引
  7. BZOJ5251 八省联考2018劈配(网络流)
  8. 深入理解cookie
  9. Ubuntu16.04编译Android5.1源码
  10. java对象复制_Java对象的深层复制与浅层复制
  11. SQL还原数据库剔除占用
  12. 干电池很不经用,比充电电池差多了
  13. CAD填充技巧:填充图案
  14. Linux内核参考链接与书籍
  15. 一键生成App图标所有尺寸的三个酷站分享
  16. Android模仿新浪微博(启动界面登陆界面)
  17. bzoj3384[Usaco2004 Nov]Apple Catching 接苹果*bzoj1750[Usaco2005 qua]Apple Catching*
  18. UNCTF2022-公开赛-MISC-部分WriteUp
  19. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题
  20. windows server2012R将域名和访问的网址绑定

热门文章

  1. YOLOv2—passthrough层
  2. gRPC快速入门(三)——Protobuf应用示例
  3. JS 中 apos;helloapos; 和 new String(apos;helloapos;) 引出的问题
  4. 将c语言程序转化成伪代码,「第9篇」「做编程题方法3」「来点伪代码」
  5. 过期策略(TTL)与淘汰策略
  6. eclipse配置glassfish插件和密码
  7. UG 10.0 GRIP 问题
  8. 快速批量把jpg转换成pdf的方法
  9. 用C语言求三位数的回文素数,C语言求回文素数
  10. Dom对象和java