求第k小的数、第k大的数、中位数的三种算法(nth_element()、快速选择算法、直接排序法)
题目描述:给定一个n个元素的无序序列,求出第k小的数、第k大的数、中位数。注意:其实要求出第k大的数,只需要求出第 (n+1)-k 小的数即可,中位数同理,如果n为偶数,就是求出(第 n/2 小的数+第 n/2+1 小的数) / 2,如果n为奇数,就是求出第 n/2 + 1小的数。下面给出三种解法:nth_element()快速选择法直接排序法方法1:nth_element()...