面试题 3.一个有十亿条记录的文本文件,已经按照关键字排好序存储,设计算法,可以从文件中快速查找指定关键字的记录_Java天下第1的博客-程序员秘密

技术标签: 算法  java  (2021)VIP专属BAT大厂面试题 不定时更新  数据库  数据结构  大数据  

3.一个有十亿条记录的文本文件,已经按照关键字排好序存储,设计算法,可以从文件中快速查找指定关键字的记录。

答: 十亿条记录对应的数据量在GB量级,分成100份,每份10MB 放入内存无压力
每份第一条记录关键字和此纪录对应文件偏移量扫入内存 随机IO100次
很快就能定位出指定关键字所在的记录块 然后把相应记录块拿到内存 二分法朝朝

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_16397653/article/details/105883554

智能推荐

操作系统-_Code_Paradise的博客-程序员秘密

冯诺依曼体系结构一、冯诺依曼体系结构输入设备:键盘,鼠标,摄像头,麦克风,网卡,硬盘。。输出设备:显示器,声卡,喇叭,网卡,硬盘。。输入输出设备(外围设备,外设)内存:掉电易失性存储介质,存储速度比较快(相对的,磁盘等)一、冯诺依曼体系结构输入设备:键盘,鼠标,摄像头,麦克风,网卡,硬盘。。输出设备:显示器,声卡,喇叭,网卡,硬盘。。输入输出设备(外围设备,外设)内存:掉电易失性存储介质,存储速度比较快(相对的,磁盘等)...

过滤IE浏览器版本_aa545785的博客-程序员秘密

<!--[if !IE]><!--> 除IE外都可识别<!--<![endif]--><!--[if IE]> 所有的IE可识别 <![endif]--><!--[if IE 6]> 仅IE6可识别 <![endif]--><!--[if lt IE 6]> IE6以及IE6...

Oracle PrimaveraUnifier 数据定义(Data Definitions),S1_蚕豆哥的博客-程序员秘密

Oracle Primavera Unifier数据定义描述了如何将数据输入到Unifier中并存储。数据定义是构建数据元素(表单字段)的基础。有三种类型的数据定义:Basic,Cost Code,Data Picker

android系统升级对底层影响,完全掏空安卓,EMUI10不断更新,系统底层基本替换成鸿蒙..._孙晓岸的博客-程序员秘密

原标题:完全掏空安卓,EMUI10不断更新,系统底层基本替换成鸿蒙作为中国第一全球第二的手机厂商,华为已经拥有越来越多的核心软硬件技术,手机芯片上的成就非常大,当年手机销量被小米各种碾压,华为手机处理器也是用的高通骁龙,最后自研芯片,用在手机上性能非常差,很多人都不看好麒麟芯片的未来,然而让高通苹果出乎预料的是,麒麟990 5G已经成为目前最快商用的高端5G芯片,完全领先高通半年时间。而在芯片性能...

oracle 定义临时变量,并使用分支判断_weixin_30710457的博客-程序员秘密

declare tempCount int; tempID VARCHAR2(8);begin select count(*) into tempCount from CUSTOMER_PROFILE where id=:CUSTOMER_ID; if tempCount>0 then upda...

随便推点

Linux-Day01_简介_安装_常用命令_虚拟机快照_静态ip_xujunming668的博客-程序员秘密

Linux-Day01课程内容Linux简介Linux安装Linux常用命令1. 前言1.1 什么是LinuxLinux是一套免费使用和自由传播的操作系统。说到操作系统,大家比较熟知的应该就是Windows和MacOS操作系统,我们今天所学习的Linux也是一款操作系统。1.2 为什么要学Linux那么我们为什么要学习Linux呢,主要出于两个方面的原因。1). 企业用人要求以下,是从知名招聘网站上搜索的java开发工程师的岗位要求,在很多的岗位要求中都提到了Linux操作系统的

Web API系列(三):添加接口详细说明及测试_webapi 怎么添加接口说明_码探长的博客-程序员秘密

本篇博客主要解决在前后端分离项目中,后台为前端人员提供详细API接口说明的问题,该文主要通过在Web API项目中修改WebApi HelpPage相关代码和添加WebApiTestClient组件实现WebAPI接口详细说明以及接口测试。

Jmeter测试最大在线用户数_jmeter在线用户数怎么测_苦逼的小马的博客-程序员秘密

首先我们编写一个登录某个网站的脚本。运行脚本我们会发现,脚本只是成功的进行了登录这个操作,但并没有一直在线。所以我们进一步使用Fiddler进行抓包查看。可以看出,网站每个一段时间就会向服务器发送一个请求,这样我们就能明白为什么浏览器登录后,系统会一直保持在线的状态。我们的脚本中没有编写定期和服务器进行通信,所以当执行登录后,这个线程也会关闭。...

Docker零基础入门指南(四):Docker容器使用_abserver的博客-程序员秘密

启动容器启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为Docker的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。新建并启动所需要的命令主要为 docker run 当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括: 1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载 2. 利用...

oracle06_手动建库_mkdir {a,b,c,u}_access20032004的博客-程序员秘密

--1.建目录 $ cd $ORACLE_BASE $ mkdir oradata/DB $ mkdir admin/DB $ mkdir admin/DB/{a,b,c,u}dump--2.口令文件&参数文件 $ orapwd file=$ORACL

IDEA的配置设置及使用_idea edit configuration_achu19的博客-程序员秘密

新建工程打开IDEA工具,选择如下选择Java运行环境,然后点击next(此处以创建java项目为例)自定义工程名称(注:此处创建的工程相当于eclipse中开辟的新的工作空间workspace),点击finish可以右键src创建包、创建类(像eclipse一样),可以直接点击红色框中的绿色三角形运行,也可以鼠标右键运行main函数在project01下创建一到多个Module(这里的Module就相当于eclipse中的工程project),然后点击next输入Module名称,