折半查找法(二分法)

在写程序中,我们需要注意的是函数的要求,需要你输入的是下标,那么下标是由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

希望各位认真思考过程,加强自己的想法。

折半查找一个有序数组中的一个元素,即二分法相关推荐

  1. C语言:向一个有序数组中插入一个数据,并保持数组的有序性。

    C语言:向一个有序数组中插入一个数据,保持数组的有序性. #include <stdio.h> //向一个有序数组中插入一个元素,重新实现有序,并输出. int main() {//注意数 ...

  2. 使用二分查找向一个有序数组中插入一个数据

    折半查找法找到一个元素在数组中的下标* @param arr 数组* @param key 要查找的元素* @return 找到则返回元素在数组中的下标,如果没找到,则返回这个元素在有序数组中的位置* ...

  3. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  4. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  5. LeetCode 540. 有序数组中的单一元素(c语言实现)

    540. 有序数组中的单一元素 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个数. 你设计的解决方案必须满足 O(log n) 时间 ...

  6. 「 每日一练,快乐水题 」540. 有序数组中的单一元素

    ✅力扣原题: 力扣链接:540. 有序数组中的单一元素 ✅题目简述: 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个数. 你设计的解 ...

  7. 540. 有序数组中的单一元素

    540. 有序数组中的单一元素 给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数. 示例 1: 输入: [1,1,2,3,3,4,4,8,8] 输出: 2 示例 ...

  8. 540. 有序数组中的单一元素 golang

    540. 有序数组中的单一元素 golang func singleNonDuplicate(nums []int) int {if len(nums) <= 1 {return nums[0] ...

  9. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42

    540. 有序数组中的单一元素 540. Single Element in a Sorted Array 题目描述 每日一算法2019/6/14Day 42LeetCode540. Single E ...

最新文章

  1. 现代密码学5.3--Hash and MAC
  2. Flex与.NET互操作(九):FluorineFx.NET的认证(Authentication )与授权(Authorization)
  3. spring security 验证码
  4. 生成二维码并以图片格式下载-qrcodejs2
  5. MVVM框架从WPF移植到UWP遇到的问题和解决方法
  6. ssas如何创建分区_Analysis Services(SSAS)多维设计技巧–创建尺寸
  7. VideoView播放视频会引起其它音乐播放器暂停问题解决
  8. vba教程视频,VBA(基础篇+提高篇+实战篇)Excel数据处理教学视频
  9. 小米路由器3潘多拉固件刷机教程
  10. 案例上手 Spring 全家桶
  11. 漫城cms免费漫画+小说cms系统
  12. 四阶段法-交通分布预测方法-算法复现
  13. 默认浏览器怎么更改为别的浏览器,这2个方法很简单
  14. Unity手机游戏性能优化系列:针对CPU端的性能调优
  15. 小米SN保修_一次真实但糟糕的小米笔记本售后
  16. ViewPage2简单使用
  17. Python线程详解
  18. 购物搜索引擎/比较购物网站
  19. 卡莱特(深圳)招聘FPGA工程师
  20. 基于视觉信息的网页分块算法(VIPS)

热门文章

  1. ffmpeg中av_strlcpy替换了pstrcpy
  2. android--系统jar包引用
  3. u-boot中添加自定义命令
  4. html引入jquery_jQuery
  5. qstring转qchar_Qt 对QString操作
  6. 多个网页用一个html,在多个页面使用同一个HTML片段的代码-javascript技巧
  7. pythonguitkinter组件_四十八、Python中的GUI布局tkinter
  8. 牛客假日团队赛8:F.Telephone Lines(二分+spfa)
  9. 动态刷新_iPhone 12:120Hz动态刷新屏幕加持!iPhone X无奈价崩
  10. 弹性盒子内容体居右对其_弹性盒子侧轴对齐方式