算法题:求第k小的数
关键词:分治,快速排序,枢轴
题目
原题链接
思路
方法一:排序后输出。复杂度O(nlogn)O(nlogn)O(nlogn),不现实。
方法二:利用快排的思想,每次选取枢轴,将小于枢轴的放在枢轴左边,大于枢轴的放在右边。然后,枢轴在第几个位置,它就是第几小的数。于是,根据情况选择枢轴、递归其左边、递归其右边。复杂度O(n)O(n)O(n),非常棒。
方法三:直接使用STL库里面的nth_element(array, array+k, array+count)即可使得array[k]这个元素满足左侧均.
原创
2021-01-20 13:57:14 ·
1187 阅读 ·
0 评论