1.快速排序思想:从一堆数A中找到一个数x,然后把这堆数x分成两堆B,C,B堆的数小于(或小于等于)该数,放在左边,C堆的数大于(或大于等于)该数,放在右边,有可能把该数x单独分开,放在中间.然后对小于(或小于等于)该数的堆B和大于(或大于等于)该数的堆C进行上述相同的操作,直到堆中的数只有一个,不必排序. 2.快速排序随机化:对数x进行随机化选取.即若对a[l]~a[r]进行排序,则从l~r中选择一个数k,使x=a[k]. 3.求Topk(一个数组从小到大排序第k个数),O(n). 若数x在堆…