查找中的算法----HASH查找,二分查找,堆查找,B树查找,字典树,海量查找
2014-06-06 20:18
239 查看
查找中的算法----HASH查找,二分查找,堆查找,B树查找,字典树,海量查找
字典树:
手机键盘查询姓名,查询对应号码
海量查找:
海量日志数据,提取出某日访问百度次数最多的那个IP
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,统计最热门的10个查询串
有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词
有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
给40亿个不重复的unsigned
int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
在海量数据中找出重复次数最多的一个?
上千万或上亿数据(有重复),统计其中出现次数最多的钱N个数据。
一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词
5亿个int找它们的中位数。
总结:
1.bloom
filter
2.hash
3.bit-map
4.heap
5.双层桶划分(分治后用bitmap或计数排序)
6.B+树(数据库思想)
7.反向索引(反向索引则是单词指向了包含它的文档)
8.外排序(归并排序,败者树,最优归并树)
9.字典树
10.分布式处理
mapreduce
字典树:
手机键盘查询姓名,查询对应号码
海量查找:
海量日志数据,提取出某日访问百度次数最多的那个IP
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,统计最热门的10个查询串
有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词
有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
给40亿个不重复的unsigned
int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
在海量数据中找出重复次数最多的一个?
上千万或上亿数据(有重复),统计其中出现次数最多的钱N个数据。
一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词
5亿个int找它们的中位数。
总结:
1.bloom
filter
2.hash
3.bit-map
4.heap
5.双层桶划分(分治后用bitmap或计数排序)
6.B+树(数据库思想)
7.反向索引(反向索引则是单词指向了包含它的文档)
8.外排序(归并排序,败者树,最优归并树)
9.字典树
10.分布式处理
mapreduce
相关文章推荐
- 最长上升子序列——O (nlogn)算法原因解析!为什么这样可以求出来!(附带动态规划dp + 二分查找讲解)
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
- java 二分查找算法
- 二分查找算法----递归&&非递归
- 算法分析:二分查找
- 二分查找算法:
- (算法)二分查找的搜索区间
- 分治算法解决二分查找
- 【算法-查找之二】二分查找
- 算法第四版(1)二分查找
- 集训第四周(高效算法设计)N题 (二分查找优化题)
- 生活中的算法--二分查找
- 算法学习---基本数据类型的数组二分查找实现
- 二分查找算法变体在实际项目中的应用
- |算法讨论|二分查找 学习笔记
- [算法]java实现 二分查找 斐波那契数列 静静思考
- 【数据结构与算法】二分查找
- Python查找算法之 -- 列表查找和二分查找
- 二分查找和hash查找
- 面试常见5个算法套装,4个排序+二分查找