折半查找一个有序数组中的一个元素,即二分法
折半查找法(二分法)
在写程序中,我们需要注意的是函数的要求,需要你输入的是下标,那么下标是由low和high共同求得。我会在下面给大家介绍的。
运行结果
代码如下
#include<stdio.h>
#define N 5
int main()
{int i,mid,high,low,t; int a[N];for(i=0;i<N;i++)scanf("%d",&a[i]);scanf("%d",&t);low=0;high=N-1;while(low<=high){mid=(low+high)/2;if(t>a[mid])low=mid+1;else if(t<a[mid]) high=mid-1;else break;} if(low<=high)printf("%d 在数组中的下标是%d\n",t,mid);elseprintf("该元素不在数组中\n"); return 0;
}
假如数组是1 2 3 4 5,如果你要查4这个元素
那么定义数组A[4],low=0,high=4;mid=2;
查 4 时,相当于t;A[mid]=3; t>a[mid],则low=mid+1=3,则mid=(low+high)/2 =3,即7/2=3。即4这个元素在数组中的下标是3
希望各位认真思考过程,加强自己的想法。
折半查找一个有序数组中的一个元素,即二分法相关推荐
- C语言:向一个有序数组中插入一个数据,并保持数组的有序性。
C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...
- 使用二分查找向一个有序数组中插入一个数据
折半查找法找到一个元素在数组中的下标* @param arr 数组* @param key 要查找的元素* @return 找到则返回元素在数组中的下标,如果没找到,则返回这个元素在有序数组中的位置* ...
- Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小
7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
- LeetCode 540. 有序数组中的单一元素(c语言实现)
540. 有序数组中的单一元素 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个数. 你设计的解决方案必须满足 O(log n) 时间 ...
- 「 每日一练,快乐水题 」540. 有序数组中的单一元素
✅力扣原题: 力扣链接:540. 有序数组中的单一元素 ✅题目简述: 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个数. 你设计的解 ...
- 540. 有序数组中的单一元素
540. 有序数组中的单一元素 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数. 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 ...
- 540. 有序数组中的单一元素 golang
540. 有序数组中的单一元素 golang func singleNonDuplicate(nums []int) int {if len(nums) <= 1 {return nums[0] ...
- LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
540. 有序数组中的单一元素 540. Single Element in a Sorted Array 题目描述 每日一算法2019/6/14Day 42LeetCode540. Single E ...
最新文章
- 现代密码学5.3--Hash and MAC
- Flex与.NET互操作(九):FluorineFx.NET的认证(Authentication )与授权(Authorization)
- spring security 验证码
- 生成二维码并以图片格式下载-qrcodejs2
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
- ssas如何创建分区_Analysis Services(SSAS)多维设计技巧–创建尺寸
- VideoView播放视频会引起其它音乐播放器暂停问题解决
- vba教程视频,VBA(基础篇+提高篇+实战篇)Excel数据处理教学视频
- 小米路由器3潘多拉固件刷机教程
- 案例上手 Spring 全家桶
- 漫城cms免费漫画+小说cms系统
- 四阶段法-交通分布预测方法-算法复现
- 默认浏览器怎么更改为别的浏览器,这2个方法很简单
- Unity手机游戏性能优化系列:针对CPU端的性能调优
- 小米SN保修_一次真实但糟糕的小米笔记本售后
- ViewPage2简单使用
- Python线程详解
- 购物搜索引擎/比较购物网站
- 卡莱特(深圳)招聘FPGA工程师
- 基于视觉信息的网页分块算法(VIPS)
热门文章
- ffmpeg中av_strlcpy替换了pstrcpy
- android--系统jar包引用
- u-boot中添加自定义命令
- html引入jquery_jQuery
- qstring转qchar_Qt 对QString操作
- 多个网页用一个html,在多个页面使用同一个HTML片段的代码-javascript技巧
- pythonguitkinter组件_四十八、Python中的GUI布局tkinter
- 牛客假日团队赛8:F.Telephone Lines(二分+spfa)
- 动态刷新_iPhone 12:120Hz动态刷新屏幕加持!iPhone X无奈价崩
- 弹性盒子内容体居右对其_弹性盒子侧轴对齐方式