# 中位数Median与平均数的性质:
1, 对于数字A[], 给一个值 T,求 Σ |A[i] - T|,当T = Median时,结果最小。
数组中所有数和Median的差的绝对值之和最小。
应用 TopCoder SRM 645DIV2-500
2, 平均数AVG的性质:
数组中所有数和AVG的差的平方和最小。
# gcd(greatest common divisor) 和 lcm(lowest common multiply)满足结合率
求一堆数的gcd或者 lcm,只要先求出前两个,然后挨个求当前结果和下一个数的gcd(lcm) 即可
# 求N以内的所有质数,或者求所有从小到大的质数中第K个质数
1, 求N以内的所有质数
Sieve of Eratosthenes
2, 求第K个质数
估计N内所有的质数的个数的算法是N/ln(N),这是个N > 2 后就开始单调递增的函数。因此可以用二分法估算出N的大小,再利用上面的方法求出N 内第K个质数。
参考:http://program-think.blogspot.com/2011/12/prime-algorithm-1.html#head-4
# 数组的suffle方法,保证每种permutation出现的概率相等
Fisher–Yates_shuffle
# 格雷码 Gray code
从0开始数,第n个Gray code 为 (n>>1)^n
# AC自动机算法 Aho-Corasick automation
多模匹配算法之一。常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。
http://www.cppblog.com/mythit/archive/2009/04/21/80633.html
# 后缀树
http://taop.marchtea.com/08.06.html
### 后缀数组,suffix tree 的O(n)版本
http://dongxicheng.org/structure/suffix-array/
### 类似的还有 Ukkonen 的后缀树
http://www.oschina.net/translate/ukkonens-suffix-tree-algorithm-in-plain-english
# Treaps,一个比较容易实现的balanced tree
https://pavpanchekha.com/blog/treap.html
http://dongxicheng.org/structure/treap/
http://www.cnblogs.com/huangxincheng/archive/2012/07/30/2614484.html
# skip list