2018年7月11日

海量数据处理算法(top K问题)

摘要: 举例 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。 思路 首先把文件分开 针对每个文件hash遍历,统计每个词语的频率 使用堆进行遍历 把堆归并起来 具体的方案 1.分治: 顺序读文件中,对于每个词c,取hash(c)%2000 阅读全文

posted @ 2018-07-11 17:08 荣耀王者 阅读(404) 评论(0) 推荐(0) 编辑

用哈希算法的思想解决排序和字符串去重问题,时间复杂度为O(N)

摘要: 第一个题目: int a[] = {12,13,12,13,19,18,15,12,15,16,17},要求对数组a进行排序,要求时间复杂度为O(N) 我们所知道的常规排序中,最优的解法也就是O(N*log2^N),那如何做到时间复杂度为O(N)呢? 运用哈希算法的思想就可以优化算法为O(N) 第二 阅读全文

posted @ 2018-07-11 16:50 荣耀王者 阅读(507) 评论(0) 推荐(0) 编辑

海量数据中找出前k大数(topk问题)

摘要: 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是 阅读全文

posted @ 2018-07-11 16:36 荣耀王者 阅读(931) 评论(0) 推荐(0) 编辑

斐波那契数列n项的值。(递归和非递归算法Golang实现)

摘要: 递归实现: 非递归实现: 阅读全文

posted @ 2018-07-11 15:42 荣耀王者 阅读(1121) 评论(0) 推荐(0) 编辑

导航