假设您有一个非常大的数字列表,排序费用很高。它们是实数/小数但都位于相同的范围内,对于某个整数n,比如0到n。是否存在用于估计不需要对数据进行排序的百分位数的方法,即具有比最快排序算法更好的复杂度的算法。
注意:标签只是分位数,因为没有百分位数的现有标签,它不会让我创建一个;我的问题并不是针对分位数的。
答案 0 :(得分:0)
为了找到一组N个数的第p个百分位数,基本上你试图找到第k个最大数,其中k = N * p / 100(我想 - 向下舍入 - 或者在第二个思考,考虑中位数,例如,可能是它的四舍五入)。
您可以尝试median of medians算法,该算法应该能够在O(N)时间内找到N个数中的第k个最大数。 我不知道这是在标准库中实现的,而是一个提议的实现 发布在this question的答案之一。