自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 百度移动搜索部实习生面试经历

10号去百度面试移动搜索实习,周六收到口头offer,昨天收到正式offer。下面总结一下这次面试经历:面试那天移动搜索部在社招,一进百度大厦就看到很多等通知的人,还有不少hr在忙里忙外,面实习的人不多,数了一下大约10个左右。可能因为太忙了,过了原定面试时间半个小时也没人招呼我们这些实习生。又等了一会,一个hr来带我们入内,面试大厅的摆设类似学校食堂,一个考官一张桌子,面试者与考官面对面坐着

2012-11-22 00:24:09 2703

原创 基础算法系列(七)——希尔排序

希尔(shell)排序是改进版的插入排序,我们不妨先回顾一下,插入排序是将一个元素与已有的有序序列进行逐次比较来确定插入点,这种做法的问题是每比较一次前进距离为1,对于元素数量较大的情况效率很低。希尔排序正是针对这种情况进行了改进。算法思想:1、在插入排序的基础上,设置一个步长step,每次比较不再是和相邻元素比较,而是和序列前方第step个元素比较,这样可以较快的找到元素所属

2012-11-16 23:21:25 609

原创 基础算法系列(六)——堆排序

堆排序也是一种O(nlogn)时间的算法,相比归并排序,它具有原地排序的性质。实际应用中有时不需要获得整个集合的排序,只需要求集合前k个最大元素,这种情况下选用堆排序是比较合适的。算法思想:堆的概念:二叉堆类似一棵完全二叉树,每个节点最多可以有两个子节点。则对于最大(小)堆,每个节点的key值必须大(小)于它的子节点。有了这样一个堆之后,虽然还无法得到准确的排序结果,但至少知道节点

2012-11-16 00:26:58 559

原创 基础算法系列(五)——归并排序

和快排相同,归并排序时间复杂度也是O(nlogn),同时它还是一种稳定排序。本文以二路归并为例,而实际应用常采用多路归并进行外部排序,这一点笔者后续会补充。算法思想:运用了分治理念,通常是将待排序数组从中间一分为二,再对这两段分别进行归并排序,最后将排序后的两段合并(故称二路归并),合并时通常需要一个与数组长度相等的额外空间保存临时结果。如果不用这个额外空间也可以完成排序,只是那样算法效率

2012-11-15 00:53:01 469

原创 基础算法系列(四)——快速排序

易于实现、原地排序、复杂度低,把这些优点聚于一身,很容易使人想到快排——一种上课、考试、找工作总能遇到的算法。算法思想:分治的理念,将问题转化为把数组切成两段,再对两段分别排序的问题。其中需要注意的是切分方法:1、在原数组中取一个元素p,逐次与其他元素比较,把小于p的所有元素放在p的左边,大于p的放右边——这样,原数组就以p为界线,被切成两段2、p的位置已经是其最终排序后的

2012-11-14 00:44:57 334

原创 基础算法系列(三)——插入排序

如同冒泡排序一样,插入排序也是算法课入门必谈之经典。那么两者的差异在哪里呢?算法思想:逐个拿出未排序元素和已经排好序的序列进行比较,找到合适的位置插入该元素,这个插入的操作会造成插入点之后的元素移动。示例程序:#define SWAP(A, B) do{(A) ^= (B); (B) ^= (A); (A) ^= (B);} while(0)vo

2012-11-13 00:13:53 338

原创 基础算法系列(二)——冒泡排序

和选择排序同样,冒泡排序也是经典的排序算法,很多入门课程讲的第一个算法就是它。所谓冒泡,指排序过程中元素的移动方式就像上浮的气泡,非常形象。算法思想:1、从后向前遍历,把当前元素与其前驱元素排序,一轮后可以使最小(大)的元素移动到表头。2、对于包含n个元素的表,重复上述过程n次即可达到有序。示例代码:#define SWAP(A, B) do{(A) ^= (B);

2012-11-12 15:37:21 396

原创 基础算法系列(一)——选择排序

选择排序是最基础的排序算法之一,其核心思想依次寻找集合中第k小的元素(k = 1,2,3,...),达到排序的目的上述思想是一个递归的过程,常规步骤如下:1、通过遍历选择集合中最小的元素,将其挑出放在结果序列中;2、对剩余元素重复步骤1,直到集合为空;这样得到的结果序列就是一个从小到大排列的有序序列,示意代码如下:#define SWAP(A, B) do{(A) ^=

2012-11-11 21:14:57 313

原创 开章

正式学习计算机两年有余,回顾种种独自摸索的过往,如同在黑暗中遍寻不得光明般晦蒙,如今纵得脉络丝缕却仍青涩有余,年长志销,不敢不奋力向前。不由慨叹道路崎岖如斯,吾辈智迟,空负少年意气,如今早已不识十八岁时自己踌躇满志之态。岁月留下的,如杯中冷茶,浮华淀去,清芬散尽,更添苦涩与凝重,入喉时的寒意,却又让人敛心凝神,驱散种种虚无的幻想。如今提笔,是为昨日故事划下终点,更是谱写未来新章之起点——万绪千心笔

2012-11-08 22:02:57 699

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除