数据结构与算法
gowhereyouwant
天才就是重复次数最多的人
展开
-
海量TopK问题
Top K问题在数据分析中非常普遍的一个问题(在面试中也经常被问到),比如: 从20亿个数字的文本中,找出最大的前100个。 以下是一些经常被提及的该类问题。 (1)有10000000个记录,这些查询串的重复度比较高,如果除去重复后,不超过3000000个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请统计最热门的10个查询串,要求使用的内存不能超过1GB。 (2)有10个文件,每...原创 2019-04-17 16:29:15 · 416 阅读 · 0 评论 -
快速排序
通过快速排序可以将一段需要排序的数据分割成两部分,然后其中一部分数值大于另一部分,然后对每部分再进行递归快速排序,达到界定条件后,形成有序数据。 快速排序 的平均时间复杂度为O(NlogN),是冒泡排序的一种改进版。 方法:快速排序主要采用“二分”的思想,步骤如下: 设置两个变量i、j,排序开始的时候:i=0,j=n-1; 2)第一个数组值作为比较值,首先保存到temp中,即temp=A[...转载 2019-04-17 17:42:56 · 96 阅读 · 0 评论 -
最通俗易懂的KMP算法详解,遇到字符串匹配算法不再怕了
有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一下。大家只需要记住一点,PMT是什么东西。然后自己临时推这个算法也是能推出来的,完全不需要死记硬背。KMP算法的核心,是一个被称为部分匹配表(Partial Match Table...原创 2019-04-23 16:08:07 · 288 阅读 · 0 评论