范文无忧网面试笔试笔试回答

堆和堆排序在笔试题面试题中的应用

12月17日 编辑 fanwen51.com

[结构化面试题型]结构化面试题型 结构化面试只要考生在考前有一个充分的准备,面试成绩是可以迅速提高的。 但要想在面试中取得好成绩,就必须对结构化面试的各种题型及其解题思路有一个清晰的把...+阅读

堆和堆排序在笔试题面试题中的应用;

使用堆解决可以解决下列几个问题,它们在笔试面试题中可以称为经典和烫手的:

1. 构建哈夫曼代码怎样提升性能?

我们知道在构建哈夫曼树时,每次要选择集合中两个最小的元素,然后将元素值相加,合并为一个新节点,此时两个最小的元素的取出可以用HeapExtractMin函数来实现,产出的新节点需要插入到堆中 我们有MinHeapInsert函数来实现。

之前我们遇到哈夫曼编码,往往关注的是其思想,然而每次取出最小的2个元素的过程,却涉及到排序、求极值的问题。这时候用堆来维护这个队列,每次还能将取出的两个最小值的和插到堆里,非常方便,减少了运行时间。

2. 计算大型浮点数集合的和

有一个很普遍的情况,我们知道浮点数的存储都有精度,遇到大浮点数和小浮点数相加,很可能会造成精度误差。所以可以每次从优先级队列中取出最小的两个数相加,和1的实现差不多。

3. 在具有10亿个数值的集合中找到100万个最大的数

这个就是TOP(K)问题了,可以建立100万个元素的最小二叉堆,后面的数和根部进行比较,如果大于根部,进行堆调整

4. 将多个小型有序文件合并到一个大型有序文件中

该问题我整理成了另一篇文章。里面附有源码测试;

假设有 n个 小型有序文件,建立一个大小为n的最小堆,每个有序文件贡献一个(如果有的话),每次取出最小值插入到大型文件中,并且去掉该最小元素,并将它在文件中的后续元素插入到堆中,能够在o(lgn)的时间内从n个文件中选择要插入到大型文件中的元素。

意思就是,维护一个堆,该堆存放了所有小文件的最小值。每次取出最小值min(属于小文件A),将小文件A的下一个最小值再插入到A。持续下去,问题解决。

其他的相关笔试经验:

农村商业银行笔试分享 女大学生应聘银行心得 经验客服笔试题让你思维灵活

延伸阅读:

2015百度校招产品经理笔试题汇总各大互联网公司的校招基本已经告一段落了,不知道各位小伙伴们都有哪些收获呢?纵观各大公司产品经理笔试题,百度的题目既有难度、又有创意。下面为大家收集了2015年百度全部地...

搜狐2015校招产品运营笔试题地点:武汉 岗位:产品经理 一、单选题 1、 dau是指什么: 2、 直播罗永浩王自如论战的网站是: 3、 Axure文件的后缀名是 二、多选题 1、 下列哪款软件不是打车软件() A、嘀嘀 B、...

组织协调类面试题突破技巧计划组织协调类面试题是直接考察考生能力的面试题型之一,其根据招考职位来设计试题,通过考生在某一特定情景下开展工作的思路来考察考生解决问题的能力,也是公务员考试中较为常...

阿里巴巴面试题一个人掉在树上阿里巴巴马云曾经出过一道经典的面试题,以下就是这道题的原题和解析,同学们,你们是怎么解答这道题的呢?和大家分享一下吧! 阿里巴巴面试题一个人掉在树上 答案一: 尽量不要动,静...

2015年阿里巴巴校园招聘笔试题笔试时间为2014年8月29日,均为网上答题。第一部分为单选题,共20题,要在40分钟内完成。每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的。第二部分为附加题,...

北汽集团笔试题第一部分认知能力测试,类似行测,题目有三类,全是单选题 第一类是数学和机械类的题目,好像有10题,基本上都有图示,比如水槽一边进水,120m3/h,一边出水,1m3/min,问水槽的水怎么变化;还有...

阿里巴巴面试题java众所周知阿里巴巴是软件及互联网公司!Ja就是软件工作者必须要掌握的技术!如果有意愿加入阿里巴巴的朋友可以阅读这篇:阿里巴巴面试题ja!学习学习! 阿里巴巴面试题ja【1】 1、...

2014年雅虎笔试题分享1. 端口22协议 2. 操作系统线程和进程不共享的是() 3. 给出前序中序遍历的结果,求后序遍历的结果。 4. 死锁的必要条件。 5. 8个人分成2组,每组4人,问某两个人在一组的概率是()...

百度2015软件开发工程师笔试题百度的题总体来说不难,都是一些基础的题。好像近几年都有这样的趋势,计算机网络,操作系统,数据库,每个基础课出一道题。接着是三道程序设计题。最后是系统设计题。所以好好看计算...

推荐阅读
图文推荐
栏目列表