看了一下算法导论,上面介绍了一种从数组中找第i小的数的方法, 对应书上的RANDOMIZED_SELECT,这种算法在最坏情况下,复杂度为O(n^2),平均情况下,可以达到O(n)
主要就是 对数组进行重新排列(类似于快排将数组按与一个数相比与之大还是小分开排),然后用递归找到第i小的数。
看了一下算法导论,上面介绍了一种从数组中找第i小的数的方法, 对应书上的RANDOMIZED_SELECT,这种算法在最坏情况下,复杂度为O(n^2),平均情况下,可以达到O(n)
主要就是 对数组进行重新排列(类似于快排将数组按与一个数相比与之大还是小分开排),然后用递归找到第i小的数。