算法
Acm.
这个作者很懒,什么都没留下…
展开
-
程序员必会的十大基础算法!
第一 快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行...转载 2018-09-18 14:40:05 · 267 阅读 · 0 评论 -
KMP算法理解
https://blog.csdn.net/starstar1992/article/details/54913261 先留个链接,以后继续深究转载 2018-10-13 10:42:26 · 92 阅读 · 0 评论 -
如何将n个有序大文件,有序的存入一个磁盘?
如何将n个有序大文件,有序的存入一个磁盘? 通常会给定一个内存空间(如2G),但是每个有序大文件都在10G以上,所以无法全部读取到内存中进行合并。 这问题是一个归并排序的运用! 为了方便解说,假设问题中的n=2,并且文件为升序。并设文件一为file_one,文件二为file_two。文件中的数据用1,2,3,4…来表示 步骤如下: 一、拿到file_one1放入内存。 二、拿到file_two1与...原创 2018-10-06 22:29:43 · 536 阅读 · 0 评论 -
蓄水池算法
题目:给出一个数据流,这个数据流的长度很大或者未知。并且对该数据流中数据只能访问一次。请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等。 抽象:从n中取出k个数,n未知大小,保证最后n中每个元素被抽取的概率一样为k/n。 做法:假设我们从3个数{1,2,3}中取一个数,那么就要求每个数被抽取的概率为1/3,我们先读取前2个数{1,2},我们以1/2的概率选取其中一个数,加入选择{1},...转载 2018-11-29 17:17:45 · 230 阅读 · 0 评论 -
我是如何用单机实现亿级规模题库去重的?
我是如何用单机实现亿级规模题库去重的? 背景 最近工作中遇到了一个问题:如何对大规模题库去重?公司经过多年的积累,有着近亿道题目的题库,但是由于题目来源不一导致题库中有很多重复的题目,这些重复的题目在检索时,除了增加搜索引擎的计算量外,并不会提高准确率。此外由于题目过多,搜索引擎往往采取了截断策略,只对一部分题目进行计算,这导致了某些正确的题目反而得不到计算,拍搜准确率甚至不增反降。所以对于一个搜...转载 2019-07-19 16:45:13 · 452 阅读 · 0 评论