二分法c语言代码(递归、迭代)
递归代码如下:
include <stdio.h>int BSearch(int d[], int target, int low, int high)
{//第二个参数是要找的数,返回下标if (low <= high){int m = (low + high) / 2;if (target < d[m])return BSearch(d, target, low, m - 1);else if (target>d[m])return BSearch(d, target, m + 1, high);elsereturn m;}return -1;
}void main()
{int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 100, 2000, 5000, 9999 };int c = BSearch(a, 2000, 0, 13);printf_s("c:%d\n", c);getchar();
}
迭代代码如下:
#include <stdio.h>int BSearch(int d[], int target, int low, int high)
{//第二个参数是要找的数,返回下标int m;while (low <= high){m = (low + high) / 2;if (target < d[m])high = m - 1;else if (target>d[m])low = m + 1;elsereturn m;}return -1;
}void main()
{int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 100, 2000, 5000, 9999 };int c = BSearch(a, 2000, 0, 13);printf_s("c:%d\n", c);getchar();
}
代码思路很简单,在此不再说明!!
二分法c语言代码(递归、迭代)相关推荐
- 非线性方程求根方法总结附代码(从二分法、试位法到牛顿迭代、二次插值等)
非线性方程求根方法总结&附代码(从二分法.试位法到牛顿迭代.二次插值等) 1 划界法 1.1 二分法 1.1 试位法 1.3 改进试位的法思路 1.4 Ridders方法 1.5 划界法的问题 ...
- 语言代码编程大赛简讯_精品干货:C语言的高效编程与代码优化
在本篇文章中,我收集了很多经验和方法.应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码. 简介 在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级 ...
- C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈
C语言用递归求斐波那契数,让你发现递归的缺陷和效率瓶颈 分享到: QQ空间 新浪微博 腾讯微博 豆瓣 人人网 递归是一种强有力的技巧,但和其他技巧一样,它也可能被误用. 一般需要递归解决的问题有两个特 ...
- 数据结构与算法|马踏棋盘算法(小甲鱼)C语言代码的算法分析
马踏棋盘算法(骑士周游问题)的算法分析 C语言代码部分来自小甲鱼的<数据结构与算法> 文章目录 马踏棋盘算法(骑士周游问题)的算法分析 一.C语言代码实现 二.代码分析与算法思路 题目要求 ...
- c语言程序运行内存图解,从执行速度和内存使用等方面来优化C语言代码
在本篇文章中,我收集了很多经验和方法.应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码. 简介 在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级 ...
- 超详细八大排序+基数排序(图文并茂+动图演示+C语言代码演示)
超详细八大排序+基数排序(图文并茂+动图演示+C语言代码演示) 插入排序-直接插入排序 插入排序-希尔排序 选择排序-直接选择排序 选择排序-堆排序 交换排序-冒泡排序 交换排序-快速排序-三种方法( ...
- C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...
C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质 事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结 ...
- [Leedcode][JAVA][第94/144/145题][前中后序遍历][递归][迭代][二叉树]
[问题描述][] 前序遍历 先输出当前结点的数据,再依次遍历输出左结点和右结点 中序遍历 先遍历输出左结点,再输出当前结点的数据,再遍历输出右结点 后续遍历 先遍历输出左结点,再遍历输出右结点,最后输 ...
- 已知函数func的C语言代码框架,第三章习题-ddg..doc
第三章习题-ddg. 习 题 1. 给出以下概念的解释说明. 机器语言程序机器指令汇编语言 汇编指令汇编语言程序汇编助记符 汇编程序反汇编程序机器级程序 通用寄存器定点通用寄存器栈指针寄存器 指令指针 ...
最新文章
- 【Vegas原创】outlook连接exchange需要密码的解决方法
- 机器学习中qa测试_机器学习自动化单元测试平台
- WAV文件中使用有符合整形数
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
- zenmap nmap输出无显示_液晶显示器高压板坏的现象及维修思路 。
- codeforces F.Fibonacci String Subsequences
- qt中设置QTabWidget,QGroupBox,QScrollArea的样式
- ubuntu中安装mongodb注意事项
- Bean的拷贝之BeanUtils
- eclipse默认项目部署路径(.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps) 改为自己的tomcat真实路径方法
- mysql gman do_使用MySQL UDFs来调用gearman分布式任务分发系统
- 2017年云计算的六大趋势预测
- 如何在windows下把硬盘格式化成EXT3格式?
- 【Java】Servlet完全自学手册
- 顽固文件文件夹删除工具
- r语言和python语法对比_R语言和Python区别对比,你会选择哪一个?
- 在Gilt将微服务部署到AWS:ION-Roller简介
- 浙江移动2018暑期实习生经历
- Python学习打卡第一周