用二分查找在一个有序数组中找数
有序数组:a[]={1,2,3,4,5,6,7,8,9,10}
二分查找:首先在数组中找到中间位置的数组下标mid=(start+end)/2,将所要找的数x与mid进行比较:
- 若x>mid,则要找的数在后半部分,所以令start=mid+1
- 若x<mid,则要找的数在前半部分,所以令end=mid-1
- 重复以上步骤,直到找到x=mid
代码实现如下:
#include <stdio.h>
#include <Windows.h>
#pragma warning (disable:4996)
int binsearch(int _x, int a[], int num)
{int start = 0;//start ,end 为数组下标int end = num - 1;while (start <= end){int mid = (start + end) / 2;if (_x > a [mid]){start = mid + 1;}else if (_x < a[mid]){end = mid - 1;}elsereturn mid;//返回值为数组下标}return -1;//找到所要找的数,即返回mid;否则返回值为-1.
}
int main()
{int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };int num = sizeof(a) / sizeof(a[0]); //数组长度int x = 0;printf("请输入你要查找的数据:");scanf("%d", &x);printf("%d\n", binsearch(x, a, num));system("pause");return 0;
}
用二分查找在一个有序数组中找数相关推荐
- C语言二分法在一个有序数组查找数的算法(附完整源码)
C语言二分法在一个有序数组查找数 二分法在一个有序数组查找数 C语言分治法来计算pow(x,y)完整源码(定义,实现,main函数测试) 二分法在一个有序数组查找数 给定一个排序数组和一个数字. 用户 ...
- 折半查找并插入(在一个有序数组中通过二分查找数字,若存在,指出其是数组中第几个元素;反之插入数组并有序化)
import java.util.Arrays; import java.util.Scanner;/*** 折半查找(二分查找):从中间找(数组默认排好序了)* @author Family hap ...
- 折半查找一个有序数组中的一个元素,即二分法
折半查找法(二分法) 在写程序中,我们需要注意的是函数的要求,需要你输入的是下标,那么下标是由low和high共同求得.我会在下面给大家介绍的. 运行结果 代码如下 #include<stdio ...
- java中,在一个有序数组中插入元素,使得数组保持有序排列
//已知有一个数组,/*数组里面的元素有a b c d e f y z,从控制台中随机输入一个字母,按照升序的顺序插入到该数组中并且遍历输出.*/public static void test1(){ ...
- python中二分查找什么意思_python中二分查找法的实现方法
如果想要在有序数据中进行查找想要的数据,二分查找法就个好方法,它可以大大缩短了搜索时间,是一种常见的查找方法.二分查找很好写,却很难写对,下面,小编就简单向大家介绍一下二分查找,并演示器使用代码. 1 ...
- 从2个有序数组中找第k小那个数
系列文章目录 提示:AC==accepted,即LeetCode上提交代码通过,我刷题的代码用的是java,但是C++一个道理,算法思想一样,而且c++和java非常类似,python需要自己写,但是 ...
- 有序数组中插入元素依然保持有序
有序数组中插入元素依然保持有序 如何在一个有序数组中插入元素,使得数组依然保持有序,废话不多说直接上代码(C/C++) 如何在一个有序数组中插入元素,使得数组依然保持有序,废话不多说直接上代码(C/C ...
- 考研数据结构之查找(9.8)——练习题之编写一个函数利用二分查找算法在一个有序表中插入关键字k并保持表的有序性(C表示)
题目 编写一个函数,利用二分查找算法在一个有序表中插入一个关键字k,并保持表的有序性. 分析 先在有序表中利用二分查找算法查找关键字值等于或小于k的结点,m指向正好等于k的结点或l指向关键字正好大于k ...
- 使用二分查找向一个有序数组中插入一个数据
折半查找法找到一个元素在数组中的下标* @param arr 数组* @param key 要查找的元素* @return 找到则返回元素在数组中的下标,如果没找到,则返回这个元素在有序数组中的位置* ...
最新文章
- 【PAT (Basic Level) 】1014 福尔摩斯的约会 (20 分)
- ai无法启动产品_启动AI启动的三个关键教训
- Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF
- 上下文信息 RpcContext
- Macaca使用过程中的疑问
- 用函数指针控制排序的顺序
- java递归实现汉字组词穷举_Javascript迭代、递推、穷举、递归常用算法实例讲解...
- 20200115每日一句
- php图书管理系统外文文献,JSP图书管理系统论文+源码+英文文献翻译+参考文献 第10页...
- 大二英语单词(粗略)
- 【通信原理 入坑之路】基于MATLAB的移动通信系统仿真 之 瑞利衰落信道的原理与仿真
- 最新 Hostinger域名转出教程 (2019年6月版本)
- 白话空间统计二十五:空间权重矩阵外篇:功能地理学
- 前端实现模糊查询不区分大小写
- python证件照_python opencv实现证件照换底的方法
- 物联网时代数据数据库如何选型?
- signal 11 定位
- 科研写作——常见句式(十一)
- ks检验python代码_如何使用适当的标准化方法从KolmogorovSmirnov测试(ks测试)中获得正确的p_值和ks_值?...
- 从零开始建站(四) - 后端项目搭建
热门文章
- 计算机中丢失vba,电脑打开Excel提示vbaen32.olb损坏或丢失怎么回事_电脑打开Excel提示vbaen32.olb损坏或丢失如何解决...
- hadoop 1.0 基本概念了解
- 专访丁奇:阿里云即将开源AliSQL,针对秒杀优化
- java优化上传速度慢怎么办_ossutil上传性能调优
- mysql zip 版本_MySQL zip版本安装
- 成功解决:You are using pip version 9.0.3, however version 20.3.3 is available. You should consider upgra
- 英语二级c语言,2018年全国英语等级考试三级冲刺2套模拟试题(阅读C)
- idea里注释日期怎么_IntelliJ IDEA自动注释作者信息和日期时间
- 1、第一课---小玉买玩具
- BTC World直播间冬季训练营空投福利!听课就送2000币