• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 面试遇到的两个题

面试遇到的两个题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了遇到不会的题怎么办,小明遇到这样一道题,中考遇到不会的题,遇到不会的题,遇到升专车考试题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:面试遇到的两个题
描述:

第一个:
机器内存为2GB,但有个5GB的文件里面全是以逗号分割的数字,现在我们要进行对他排序,排序好不能重复(不能用DB);

第二个:
给出你一个数找到相邻的数字(12,222,500,888,991,1000)
比如:我给的是13,那么相邻最近的是12。 我给的是998,那么相邻最近的是1000


解决方案1:

  1. 堆排序应该能适应一维海量数据的排序需求。

  2. 一维的最近邻查询。如果也要支持海量数据,那么数据结构可以用 B 树,在对 B 树进行深度优先遍历的过程中进行剪枝,不断向最近邻目标逼近。如果只是在内存里查找最近邻,用二叉搜索树也行。

其实用第 2 种方法我说的 B 树,也可以解决第 1 个问题。先建 B 树,然后从文件中最小的数据开始,以此寻找最近邻就可以了。比如最小数据为 a,从树中删除 a,再查询它的最近邻,得到 b,从树中删除 b,现在就有了 a->b。继续查询 b 的最近邻,得到 c,从树中删除 c,这样就得到 a->b->c……以此类推。时间复杂度应该是 O(nlog n)的。

解决方案2:

第一个可以用外排,但如果数字都是整数的话,用位图会更简单,一次完成排序+去重
第二个,给出的数字集合是有序的吗?如果是,直接二分查找即可。

解决方案3:

第一个问题是典型的外排序问题,最简单的方法就是归并排序,详见https://zh.wikipedia.org/wiki/%E5%A4%96%E6%8E%92%E5%BA%8F

第二个问题可以通过二分法找到给的数字相邻两边的数字。

你这个文件二分的时候需要向前或者向后找到临近的逗号,然后再读取逗号两边的数。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 面试遇到的两个题

相关文章

  • 2017-06-07 python中遇到的input问题
  • 2017-06-07 如何获取存储在七牛上的视频长度
  • 2017-06-07 python有没有比较快捷的方法实现excel的vlookup功能
  • 2017-06-07 QiniuSDK连续上传问题
  • 2017-06-07 如何在Rails项目中实现省市地区三级联动表单?
  • 2017-06-07 用django写了一个用户注册通过邮箱审核的代码。有点乱。哪位帮我解答一下几个问题啊?
  • 2017-06-07 关于使用七牛pfop的返回处理结果的问题
  • 2017-06-07 learnpythonthehardway中一句话不知如何理解和翻译
  • 2017-06-07 这行javascript正则表达式有什么问题?
  • 2017-06-07 php正则如何取消(禁止)反向引用

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • pyqt中QTableWidget设计表格列表头(行号所在列)宽度
    • 求正则高手解答
    • (ruby)执行railsserver命令之后是这样的,怎么办?
    • python值相同,列分别相加?
    • pythontornado安装失败缺少singledispatch
    • 申请绑定了自己的域名,为什么传的文件生成的外链还是七牛自己的二级域名?
    • 面向对象php如何通过面向对象实现审核过程(多级审核)
    • IIS6,jboss42整合的问题
    • Flask-Themes怎么用
    • python代码看不懂,谁解释一下

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有