决定有时间了就整理下自己写过的常用的经得起时空效率考验的并且具备一定美感的代码,这些代码不出意外学习自各神犇的博客或者书籍或兼而有之并加以整理,贴出来一方面方便自己重新学习,另一方面希望得到他人的检验,自认为是美的未必是美的。[http://www.fujiaozhu.me  // code is the law. ]

快速选择算法,随机状态下,可以在O(n)时间内选取数组中第K大的元素,思想和快排近似。随机状态下,快排递归树高O(logn),每次处理O(n),快速选择则每次舍弃掉一部分,是O(n/2), O(n/4)...求和的极限,因而两者的随机时间复杂度分别为O(nlogn)O(n),但是最坏情况都是O(n^2)