在一亿个数的有序数组中查找一个数所用时间
#include<iostream>
#include<cstdlib>
#include<ctime>
#define M 100000000
#define random(a,b) (rand()%(b-a+1)+a)
using namespace std;// 在有序的一亿个数中查找一个数所用的时间 2.5us// clock() 是以ms为单位的bool Binarysearch(int *a, int low, int high, int x){// 二分查找// 并未重复调用Binarysearch函数while (low <= high){int mid = (low + high) / 2;if (a[mid] == x)return true;else if (a[mid] > x)high = mid - 1;else low = mid + 1;}return false;}int main()
{int *a=new int[M];// a[M] M太大,直接用a[M]会报错。int testNum = 1000000;bool ret = false;for (int i = 0; i < M; i++)a[i] = i + 1;clock_t startTime = clock();srand((unsigned)time(NULL));for (int i = 0; i < testNum; i++){int tmp = random(M - testNum, M + testNum);ret = Binarysearch(a, 0, M, tmp);}clock_t endTime = clock();cout << 1 << endl;cout << (endTime - startTime)*1.0 / testNum;delete []a;
}
在一亿个数的有序数组中查找一个数所用时间相关推荐
- 循环有序数组中查找某个数
循环有序数组中查找某个数 利用二分查找, 一个循环有序数组从中间切分,一定分成一个有序数组和一个循环有序数组,由于循环有序数组不容易判断,我们只需判断哪一边是有序数组以及target是不是在有序数组 ...
- 在数组中查找一个数并输出所处位置
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p73 4.1.2 上级实训内容 [实训内容2]输入10个数,保存在一个数组中,再任意输入一个数,在数组 ...
- C语言向有序数组中插入一个数使该数组仍保持有序
C语言向有序数组中插入一个数使该数组仍保持有序 #include<stdio.h> int main() { int n,i,j,t,k; printf("您喜欢 ...
- 【C语言】用二分查找法在有序数组中查找具体的某个数
当给定一个有序数组,而我们要在这个数组中查找某个数时,我们常常用从头到尾的排除法遍历寻找,但是这种方式及其低效,n个数的数组最差要找n次.而后面我们会知道,二分查找法则高效的多,最差要找log以2为低 ...
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
原文转自:http://blog.csdn.net/u013322907/article/details/38300711 题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们 ...
- 有序数组中查找数字的范围
有序数组中查找数字的范围 如题所示: 思路 源代码如下: 如题所示: 统计一个数字在排序数组中出现的次数 思路 使用二分查找,分别找到数字的下边界和上边界 源代码如下: class Solution ...
- 【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。...
第 14 题(数组): 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字. 要求时间复杂度是 O(n).如果有多对数字的和等于输入的数字,输出任意 ...
- 在二维数组中查找一个数
在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列也按照从上到下递增的顺序排列.在这样一个序列中查找一个数 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 例如查找 ...
- C语言经典例39-在有序数组中插入一个数
目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 2 分析 对于一个有序的数组,要插入一个数,并保持依然有序,方法是从 ...
最新文章
- Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
- “双一流”高校毕业生就业图鉴:企业都偏爱哪些高校?
- 链表节点的删除(删除重复无序节点)
- Disruptor之概览
- ROS安装:Ubuntu18.04安装配置ROS-melodic
- 简单说明PHP的垃圾收集机制是怎样的?
- MobX - 基于响应式的状态管理
- 学成在线--13.RabbitMQ工作模式
- Shell脚本之awk详解
- 2019仿笔趣阁小说网站源码(PC版+手机版+APP+采集器+教程)下载
- 深度学习入门之txt文本文件转换为npz文件
- 三菱f800变频器 频率设定_三菱plc和变频器通讯怎么设置频率
- 错题集:Censored!
- 国内数字藏品交易平台开发市场会开放二级市场吗
- longest-common-prefix[最长公共子序列]
- 使用Android studio 开发xposed插件
- 以智汀和小米为例,聊一聊智能网关在智能家居中的应用
- 企业邮箱支持通过手机号登录邮箱
- Java Gradle入门指南之gretty插件(安装、命令与核心特性)
- ibverbs文档翻译
热门文章
- php mysql存储中文为空_PHP如何解决MySQL存储数据中文乱码
- vue 多个api请求_Vue+Django REST framework实战3.RESTful API和VUE目录结构
- 计算机软件自学基础,计算机软件基础一高等教育自学考试试题与答案
- bs4爬取的时候有两个标签相同_利用Python爬取OPGG上英雄联盟英雄胜率及选取率信息!...
- matlab 离散傅里叶变换_时域上的采样VS频域上的周期延拓。用离散傅里叶变换直观地演示...
- byte用json存 c++_.NET Core 3.1中的Json互操作最全解读收藏级
- 通达信波段王指标公式主图_通达信波段王主图指标公式
- php自动include,PHP include_php
- python 开发工具_Python开发工具之神兵利器
- 不宜使用Selenium自动化的10个测试场景