2012年9月14日
摘要: http://hi.baidu.com/zhzehong/archive/tag/%E5%AD%A6%E4%B9%A0%E6%96%87%E6%91%98 阅读全文
posted @ 2012-09-14 23:47 andy071001 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 堆定义:堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质:堆中某个节点的值总是大于或小于其父节点的值;堆总是一颗完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。如何建堆?1)首先要说一下一个建堆的子过程,《算法导论》中将其称作MAX-HEAPIFY方法,其输入一个数组A以及一个下标i,并使得以i为根的子树成为最大堆。这个的实现方法也很简单,就是从元素A[i],A[LEFT[i]和[RIGHT[i]中找出最大值,并将其下标标为largest。如果A[i]已经是最大 阅读全文
posted @ 2012-09-14 23:47 andy071001 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 在我还在礼拜六工作的时候,游戏后台需要实现一个给用户发送周报的功能,所谓发周报就是指抽出某项数据排名前十的用户,当时是配合mongodb数据库写的。当初我选用的就是小根堆的排序算法。这个问题我当时是这么考虑的:用户可能很多,而且只想要得到的是前十名,那么完全没有必要去给所有用户进行排序,所以考虑分为两步:1)找出前十大的数据;2)对这10个数据进行排序并写入数据库(这个第二部非常简单了,因为是常数数目,冒泡排序都可以)。所以重点呢就在第一步如何实现了。小根堆是解决这个问题的一个非常好的方法:首先,直接选择前10个数据,并建立小根堆,这样,堆顶就是这10个中最小的元素;再接着扫描下面的数据,并与 阅读全文
posted @ 2012-09-14 23:47 andy071001 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 北邮人论坛该文章地址:http://bbs.byr.cn/#!article/Job/1024012写的非常好这哥们说的第一题在昨天的笔试题里也有,是选择题,所以就放到这里,接下来我们来详细分析他说的问题。1,cookie和session的区别2,单点登陆系统的实现3,从你输入一个url到最终显示页面,都发生了什么事4,数据库优化,主要是sql优化,读写分离,根据业务需求选择哈希分库或者范围分库以及反范式设计5,设计一个推荐系统,主要是数据、信息标签的存储等问题6,邀请码的设计,不能存储生成的邀请码 阅读全文
posted @ 2012-09-14 23:46 andy071001 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 源地址:http://blog.csdn.net/v_july_v/article/details/6855788十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)引言当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计,细细把玩,思考一番亦能有不少收获。上个月,本博客着重整理九月腾讯,创新工场,淘宝等公司最新面试十三题,此次重点整理百度,阿里巴巴,迅雷和搜索等公司最新的面试题。同上篇一样,答案望诸君共同讨论之,个人亦在慢慢思考解答。多谢。最新面试十一题十月百度:一个数组保存了N个结构,每个结构 阅读全文
posted @ 2012-09-14 23:46 andy071001 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 大题倒数第二题:优酷是中国第一的视频网站,每天有上亿的视频被观看,现在公司请研发人员找出最热门的视频。 该问题的输入可以简化为一个字符串文件,么一行都表示一个视频id,然后要找出出现次数最多的前100个视频id,将其输出,同时输出该视频的出现次数。 1.假设每天的视频播放次数为3亿次,被观看的视频数量为一百万个,每个视频ID的长度为20字节,限定使用的内存为1G。请简述做法,再写代码。 2.假设每个月的视频播放次数为100亿次,被观看的视频数量为1亿,每个视频ID的长度为20字节,一台机器被限定使用的内存为1G。 那么相像找这个月被播放次数最多的前100个视频,应该怎么做?请描述清楚可能的办法 阅读全文
posted @ 2012-09-14 23:45 andy071001 阅读(350) 评论(0) 推荐(0) 编辑