二分法查找数组中某个元素

  • 一、二分法思想
  • 二、代码及结果
  • 三、总结

一、二分法思想

对于已按照关键字排序的序列,经过一次比较后,可将序列分割成两部分,然后只在有可能包含待查找元素的一部分中继续查找,并根据试探结果继续分割,逐步缩小查找范围,直至找到或找不到为止。

二、代码及结果

代码如下(示例):

#include<stdio.h>
#include<string.h>
#include"windows.h"
int main()
{int arr[] = {1,12,36,45,50,60,72,86,99,101,110};int num;printf("请输入要查找的数字:");scanf("%d", &num);int high, low=0,flag = 1;high = (sizeof(arr)/sizeof(arr[0]))-1;low = 0;while (low <= high){int mid = (high + low) / 2;if (arr[mid]<num){low = mid + 1;}else if (arr[mid]>num){high = mid - 1;}else{printf("数组所在的下标:%d\n对应元素是%d \n", mid,arr[mid]);flag = 0;break;}}if (flag){printf("找不到! \n");}system("pause");return 0;
}


三、总结

通过定义一个有序数组查找某个元素,熟练掌握二分法的基本原理,持之以恒的学习就是成功的奥秘,加油!

二分法查找有序序列元素相关推荐

  1. 二分法查找有序表中最接近的数值

    二分查找(Binary Search): 二分查找又称折半查找,它是一种效率较高的查找方法. 二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构.不妨设有序表是递增有序 ...

  2. c语言中的数组二分法排序程序,#C语言#二分法查找有序数组

    C语言的二分法,想必很多朋友都在初学时是一个难啃的骨头,因为这是必须掌握的最基础的一种算法.在这里我分享一下这个简单的#二分法#查找有序数组 #include int binary_search(in ...

  3. 二分法查找是基于有序_利用二分法查找有序数组中是否含有给定Value

    //利用二分法查找有序数组中是否含有给定Value class AlgorithmByZXQ { /// /// 二分法查找数组中某一数值 /// /// /// /// /// /// public ...

  4. C语言学习记录——鹏哥二分法查找数组中元素 复习整理

    #include <stdio.h> #include <string.h> int main() {//初始化一维整型数组int arr[10] = { 1,2,3,4,5, ...

  5. python实现二分法查找_python3 二分法查找

    ''' 二分法查找 有序列表 掐头去尾取中间 查找列表中xx在不在列表中,在,则返回索引值 ''' # lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54 ...

  6. python用二分法查找元素_Python 二分法查找

    # 二分法查找主要的作用就是查找元素 lst = [1,3,5,7,12,36,68,79] # 数据集 百万级数据 num = int(input("请输入你要查找的元素信息:" ...

  7. Python内置模块bisect(二分查找实现和快速插入有序序列)

    文章目录 1 概述 2 查找 3 插入 4 补充 1 概述 这是一个免费的二分查找实现和快速插入有序序列的工具.也就是说,你可以使用: import bisect bisect.insort(list ...

  8. C语言 二分法查找数组元素

    什么是二分法 二分法在数学上的定义:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得 ...

  9. 中根遍历二叉查找树所得序列一定是有序序列_学习数据结构--第六章:查找(查找)

    第六章:查找 1.查找的基本概念 查找:在数据集合中寻找满足某种条件的数据元素的过程. 查找的结果 查找成功和查找失败 查找表:用于查找的数据集合,由同一种数据类型(或记录)的组成,可以是一个数组或链 ...

最新文章

  1. linux消息队列非亲缘,linux进程
  2. 拦截推送信息_Android10.0公测版H2OS For OnePlus 6T第1版已推送更新
  3. (转)Go语言核心36讲之Go语言入门基础知识
  4. ASP.NET中移除全部缓存
  5. 米的换算单位和公式_求小学数学的公式、换算和单位转英文字母(米cm)
  6. selenium2 python自动化测试实战(回归测试)
  7. kaidi中 install cuda
  8. Linux如何通过csv导入neo4j,Neo4j-csv文件导入
  9. 独家解读 | 2018 恶意机器流量报告
  10. 解决“ Error L6218E Undefined symbol enet_delay (referred from xxxx.o)”问题
  11. Dima and Salad 01背包变形
  12. 我们为什么需要实时数据库?
  13. 快速分析出京东快递大量单号物流是否延误
  14. 一个完整项目的流程都涉及哪些内容
  15. Prescan 8.5.0 许可证过期(Could not checkout a valid license)
  16. 原来工业互联网和工业物联网是两个东西啊
  17. 5、Python学习笔记第5课:数据类型,运算符
  18. 3D塔防游戏实现 5.2 3D怪物死亡(Feekood语言)
  19. Nginx 配置旧域名重定向到新域名
  20. 【C语言】解决 “error: function definition is not allowed here”

热门文章

  1. 电源纹波很大?如何用示波器测试到最准确的电源纹波
  2. 配置kubeconfig_多Kubernetes集群如何切换?基于Kubectl客户端配置的实操分享
  3. tf.keras 05: 使用Keras保存和加载不同格式的模型
  4. orm框架有哪些_spring核心框架体系结构
  5. Python + Flask 开发微信小程序
  6. 广州地区《程序员》杂志购买渠道告知
  7. 小说app搭建—如何搭建小说分销系统?
  8. 路由器和集线器的区别
  9. 交叉编译SPECCPU2006
  10. linux驱动中probe函数是怎么调用的