全局排序,取前K个数组
局部排序,只排序K个数,冒泡spa
堆,TopK个数也不排序了,最小堆排序
随机选择 + partition 递归
分治法,每一个分支“都要”递归,例如:快速排序,O(n*lg(n))内存
减治法,“只要”递归一个分支,例如:二分查找O(lg(n)),随机选择O(n)it
n&(n-1):io
x = 1011 0000class
x-1= 1010 1111di
x & (x-1) = 1010 0000while
因而,n&(n-1)这个操做,能够起到“消除最后一个1”的功效。.
伪代码:
while(n){
result++;
n&=(n-1); // 每次消除一个1,最终为0
}