
算法
文章平均质量分 79
hexinuaa
这个作者很懒,什么都没留下…
展开
-
有趣的数据结构——Linux内核中的链表(Black Aureole)
<br /> Linux内核中有很多种链表,如果对每一种链表都使用单独的数据结构去表示,那么需要对每个链表实现一组原语操作,包括初始化、插入、删除等。于是,Linux内核定义了一个很有趣的数据结构: list_headstruct list_head {<br /> struct list_head *next, *prev;<br />};<br /> 乍一看这定义,似乎很普通,但妙就妙在普通上。 通常我们的做法总是将数据嵌入到链表的节点中,类似下面的定义方法:struct list_转载 2010-09-30 11:09:00 · 1082 阅读 · 0 评论 -
二分查找的几点思考
二分查找的几点思考 很早听说90%的程序员写不出正确的二分查找程序,对此颇为怀疑也颇为惶恐。怀疑的是,二分查找真的很难写吗?惶恐的是,怀疑的我能否在短时间内写出一个正确的二分查找程序?为了自己能成为10%中的一员,在此特别总结了二分查找算法。 二分查找又称折半查找,用于在有序序列原创 2011-07-12 17:29:13 · 3922 阅读 · 3 评论 -
如何设计一个LRU Cache?
如何设计一个LRU Cache?Google和百度的面试题都出现了设计一个Cache的题目,什么是Cache,如何设计简单的Cache,通过搜集资料,本文给出个总结。 通常的问题描述可以是这样:Question:[1] Design a layer in front of a s原创 2011-07-24 22:41:55 · 27991 阅读 · 10 评论 -
计算直线的交点数—动态规划
计算直线的交点数Problem Description平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。问题分析将n条直线排成一个序列,直线2和直线1最多只有一个交点,直线3和直线1,2最多有两个交点,原创 2011-07-26 00:02:43 · 4270 阅读 · 1 评论 -
海里数据面试题整理
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s 遍历文件a,对转载 2011-07-26 15:46:09 · 251 阅读 · 0 评论 -
海量数据面试题整理
海量数据面试题整理1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。转载 2011-07-27 12:24:06 · 1907 阅读 · 0 评论 -
部分面试题整理
1. 判断一个机器是大序还是小序的bool IsBig_Endian()//如果字节序为big-endian,返回true;//反之为 little-endian,返回false{ unsignedshort test = 0x1122; i原创 2011-07-27 16:40:47 · 1338 阅读 · 0 评论