算法和数据结构
MatthrewX
这个作者很懒,什么都没留下…
展开
-
归并排序和快速排序的实现
两种排序都是用的是divide and conquer的思想,时间复杂度都是O(nlogn). 归并排序的难点在merge部分,T(n) = 2(n/2) + n, 所以复杂度是O(nlogn) public static void mergeSort(int[] A){ if(A == null || A.length <= 1) return; mergeSort2(A,原创 2015-03-26 11:55:44 · 351 阅读 · 0 评论 -
找第K个最小数
好久没有写博客了,这一段时间主要在准备为将来找工作复习,今天我就总结一下关于如何查找数组的前K个最小值实现方法,查找前K个最小值实现方法很多,主要的思想包括如下的几种: 1、对数组进行排序,然后前K个元素就是需要查找的元素,排序的方法可以采用快速排序,但是我们知道在快速排序中如果已经是有序的数组,采用快速排序的时间复杂度是O(N^2),为了解决这种问题,通常选择随机选择一个数组值pi转载 2015-03-27 21:27:42 · 430 阅读 · 0 评论 -
双向BFS和six degree
http://isites.harvard.edu/fs/docs/icb.topic707165.files/pdfs/Jirapinyo_Yang.pdf转载 2015-03-13 05:59:10 · 1273 阅读 · 0 评论 -
字符串匹配, Zenefits的面试题
昨天面了Zenefits,觉得他家考题蛮有难度,不愧是现在湾区最火startup之一。当时也没写好,这里重写一下。 String s1 = "waeginsapnaabangpisebbasepgnccccapisdnfngaabndlrjngeuiogbbegbuoecccc"; String s2 = "a+b+c-"; s2的形式是一个字母加上一个符号,正号代表有两个前面的字符,负原创 2015-04-11 00:07:47 · 757 阅读 · 0 评论