写一个函数,实现一个整形有序数组的二分查找代码

#include <stdio.h>int binary_search(int a[], int k, int s)
{int left = 0;int right = s-1;while (left <= right){int mid = (left + right) / 2;if (a[mid] > k){right = mid - 1;}else if (a[mid] < k){left = mid + 1;}else{return mid;}}return -1;}int main()
{//写一个函数,实现一个整形有序数组的二分查找int arr[] = { 1,2,3,4,5,6,7,8,9,10};int key = 7;int sz = sizeof(arr) / sizeof(arr[0]);//找到了就返回找到的位置下标//找不到就返回-1int ret = binary_search(arr, key, sz);if (-1 == ret){printf("找不到\n");}else{printf("找到了 %d\n", ret);}return 0;
}


此博客是为了坚持一天一篇所写的,因为楼主完美主义 这条博客其实不算完成 因为有些知识为总结
理解不了 所以缺少解释 但是代码是对吧
等到明天我在续写后面剩余的东西,因为今天该学别的课程了

后续补充(这种写法是错误的,下面代码有注释)

#include <stdio.h>int binary_search(int a[], int k)
{int sz = sizeof(a) / sizeof(a[0]);int left = 0;int right = sz-1;while (left <= right){int mid = (left + right) / 2;if (a[mid] > k){right = mid - 1;}else if (a[mid] < k){left = mid + 1;}else{return mid;}}return -1;}int main()
{//写一个函数,实现一个整形有序数组的二分查找int arr[] = { 1,2,3,4,5,6,7,8,9,10};int key = 7;//找到了就返回找到的位置下标//找不到就返回-1//数组arr传参, 实际传递的不是数组本身//仅仅传过去了数组首元素的地址int ret = binary_search(arr, key);if (-1 == ret){printf("找不到\n");}else{printf("找到了 %d\n", ret);}return 0;
}

【C语言函数3.2】写一个函数,实现一个整形有序数组的二分查找代码相关推荐

  1. 编写函数实现有序数组的二分查找

    算法不用就忘,mark public static void binary_search(int target,int [] arr){if (arr== null || arr.length == ...

  2. C语言二分查找代码及解析

    C语言二分查找代码及分析 二分查找法思想 二分查找是一种算法,其输入的要是一个有序的序列,如果要查找的数字在这个序列中,返回它对应得位置,不在返回-1. 示例 我随便想一个1-100的数字,你的目的是 ...

  3. ACMNO.27 Python的两行代码解决 C语言-字符逆序 写一函数。使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入 一行字符 输出 逆序后的字符串

    题目描述 写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串. 输入 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源 ...

  4. 面试 -> 使用一个循环合并两个有序数组为1个有序数组

    问题:有两个排序的数组A1和A2,内存在A1的末尾有足够多的空间容纳A2.请实现一个函数,把A2中所有数字插入A1中,并且所有的数字是排序(默认升序)的. 思路:在合并两个数组(包括字符串)时,从前往 ...

  5. LeetCode 1428. 至少有一个 1 的最左端列(二分查找)

    文章目录 1. 题目 2. 解题 2.1 二分查找 2.2 直接走阶梯 1. 题目 (这是一个交互题) 我们称只包含元素 0 或 1 的矩阵为二进制矩阵. 矩阵中每个单独的行都按非递减顺序排序. 给定 ...

  6. R语言——如何调用自己写的函数

    有些时候如果将所有代码都写到一个文件之中的话,文件会过于冗长,不便修改,在R语言中,我们可以使用source()函数来调用自己写的方法.     首先,当然是要知道function是怎么用的.... ...

  7. 纯C语言用Windows api写画函数图像

    !!!如有转载 请注明出处!!! 主要功能介绍: 1.输入函数的解析式,可以在窗口中画出解析式的函数图像. 2.解析式只能以x为自变量. 3.解析式目前只能写数字.括号.加减乘除四则运算(±*/),不 ...

  8. 如何用matlab编写分段函数_matlab 如何写分段函数

    展开全部 ^ 这是我前面帮一个32313133353236313431303231363533e4b893e5b19e31333262383662人写的分段函数,并绘图,你可以参考一下 X=[];Y= ...

  9. mysql数据库写分页函数_mysql数据库写分页函数

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

最新文章

  1. centos7 systemctl配置开机自启动服务
  2. controller 有两种写法,讨论一下两种写法的区别:
  3. 【CodeForces - 705C】Thor(模拟,STLset优化链表)
  4. java常用的统计_(OJ)Java常用类-统计数字次数
  5. android全方位性能优化方法
  6. c#设计的简单登录界面
  7. 内核功能导致重启_错误信息:VS2010 Profiler导致Win7重启
  8. 读取xml文件分析 EntityName 时出错的解决方案
  9. 从零开发HarmonyOS(鸿蒙)运动手表小游戏——数字华容道
  10. 80386异常和中断
  11. matlab中变量的命名规则
  12. 被空降到一个团队当领导,你会如何烧自己的三把火?
  13. MATLAB 林地郁闭度计算
  14. Java 中 String 字符串可以有多长?65535?
  15. 不用找 手机壁纸素材合集在这
  16. gmt java date_关于日期:以Java获取GMT时间
  17. windows10 完美解决L2TP无法连接问题
  18. 获取微信用户信息方案(测试)
  19. 访问控制列表(ACL)
  20. 小米官网登陆页面制作

热门文章

  1. tensorflow的写诗代码分析【转】
  2. wireshark过滤端口范围
  3. c语言字符串连接符作用,C语言strcat()函数:字符串连接(拼接)
  4. 第990期机器学习日报(2017-06-04)
  5. ThinkPHP6 API 单文件+多文件上传代码实现方式
  6. 蓝桥杯-c语言 分解质因数
  7. 农村污水处理项目的投招标模式
  8. 【分享】软件测试基础 —— Linux
  9. python anaconda spyder 安装pymysql 模块
  10. ADM的兴衰起落。道翰天琼认知智能未来机器人接口API