C语言二分查找

虽然说C有bsearch,但实际上真的很不好用,不如自己手写。

最近想练习一下指针和malloc开动态空间。(

其实就只是把所有能用指针的地方用指针的二分查找

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
int *a;
int main()
{int n, m, i;a = (int *)malloc(1000010 * sizeof(int));//开空间scanf("%d%d", &n, &m);for (i = 1; i <= n; ++i)scanf("%d", a + i);int tar, *l, *r, *mid;for (i = 1; i <= m; ++i){scanf("%d", &tar);l = a + 1, r = a + n;while (l < r){mid = l + (r - l) / 2;if ((*mid) < tar)l = mid + 1;elser = mid;}if ((*l) != tar)printf("-1 ");elseprintf("%d ", l - a);}return 0;
}

C语言二分查找(指针)相关推荐

  1. c语言的二分查找,C语言二分查找法

    讲解对象:C语言二分查找法 作者:融水公子 rsgz 前提:必须是有序的数据 left=0;    middle=(left+right);    right=9; left>right  意味 ...

  2. C语言二分查找代码及解析

    C语言二分查找代码及分析 二分查找法思想 二分查找是一种算法,其输入的要是一个有序的序列,如果要查找的数字在这个序列中,返回它对应得位置,不在返回-1. 示例 我随便想一个1-100的数字,你的目的是 ...

  3. C语言二分查找法(指针和数组实现)

    /** 编写一个函数,对一个已排序的整数表执行二分查找.* 函数的输入包括各异指向表头的指针,表中的元素个数,以及待查找的数值.* 函数的输出时一个指向满足查找要求的元素的指针,当未查找到要求的数值时 ...

  4. c语言 二分查找法 及二分查找法的时间复杂度。

    二分查找法是用来查找数组中指定的那个元素.使用二分查找的前提是数组是有序的.(这里我们假设是升序) 在现实生活中,我们要猜一个区间内的数字,比如1~10之间,我们通常会猜它的中间数5,再根据要猜的数和 ...

  5. C语言二分查找算法[基础算法]

    该算法一般适用于查找数组元素 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少; 其缺点是要求待查表为有序表,且插入删除困难. 适用于不经常变动而查找频繁的有序列表. ...

  6. C语言 二分查找(循环实现)

    二分查找(循环实现): #include<stdio.h> int main() {int arr[10]={1,3,4,5,8,9,10,15,26,30};int val=20;int ...

  7. C语言二分查找递归与非递归实现

    折半查找也成二分查找,它是一种效率较高的查找方法.但是,二分查找要求线性表必须采用顺序存储结构,而且表中元素需按关键字有序排列,以下内容均设有序表是递增有序的. 查找过程:首先,假设表中元素是按升序排 ...

  8. c语言指针的折半法查找,数据结构笔记7:折半查找法(二分查找法)及C语言实现...

    折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 折半查找算法 对静态查找表{5,13,19,21,37,56, ...

  9. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

最新文章

  1. Xamarin XAML语言教程基本视图ContentView
  2. unix cut命令
  3. UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throw
  4. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...
  5. python项目部署nginx_【python】Django web项目部署(Nginx+uwsgi)
  6. android studio配置国内,Android studio配置国内镜像源
  7. Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]
  8. 计算机ck,[计算机]ck编程速成.doc
  9. 史上最浅显易懂的Git教程3 分支管理
  10. 广数980系统锁解除密码
  11. 技嘉linux支持的主板型号,详细解读主板厂商命名规则——技嘉篇
  12. 网吧无盘系统服务器安装,网吧网络无盘系统的安装方法
  13. 看黑客如何一步步攻破你的服务器
  14. Java类(无参、有参构造方法、静态变量)
  15. MIT牛人解说数学体系
  16. 单片机中C语言延时函数
  17. M: Triangular Relationship (数论)
  18. 阿里云Linux服务器如何打通网络
  19. java.lang.UnsatisfiedLinkError: Unable to load library ‘D:\dll\DwgOperInterface‘: 找不到指定的模块
  20. powerworld电力系统仿真,潮流计算,短路计算,电力系统分析。潮流计算对比,牛拉法,PQ分解法对比

热门文章

  1. c语言编辑 显示atd数在led上,2012 - 2013 学年第1学期《单片机原理及应用》课程答题纸 1_5.doc...
  2. 奥维互动地图 墨卡托(Mercator)投影 最新资源
  3. 技能大赛计算机主板维修报表,2017年职业院校技能大赛高职组电子产品芯片级检测维修与数据恢复赛项样题...
  4. hibernate框架构建_我们如何构建服务框架而不是框架
  5. 【湖南大学个人项目】中小学数学卷子自动生成程序
  6. Ae 表达式语言引用:Camera Light Effect
  7. 计算机文化节闭幕式祝福语,快讯 | 第十三届计算机文化节闭幕式暨专家讲座圆满落幕...
  8. 深度学习-np.pad 填充详解
  9. Linux 防火墙开启端口
  10. 90%的人都不知道网页文字被禁止如何复制,教你几招神奇技能就可以免费解决