Pythons statistics.median应该如何实现?

Pythons statistics.median应该如何实现?,python,statistics,Python,Statistics,在新的Python3.4中,他们引入了一个新的统计模块。除此之外,它还有一个计算中值的函数 目前,该函数首先对数据进行排序,然后确定中值。 如果您查看该表,其中包含以下备注: FIXME:研究无需排序即可计算中间值的方法?快速选择 是否有比当前使用的函数更快的方法计算中值?Python应该实现哪种算法来确定中位数?您将使用最小-最大中位数堆在恒定时间内找到最小值、最大值和中位数,并用线性时间来构建堆。如果您想了解有关使用堆获取媒体的更多信息,请阅读此处 此处,最佳中值查找算法中的示例代码需要线性

在新的Python3.4中,他们引入了一个新的统计模块。除此之外,它还有一个计算中值的函数

目前,该函数首先对数据进行排序,然后确定中值。 如果您查看该表,其中包含以下备注:

FIXME:研究无需排序即可计算中间值的方法?快速选择


是否有比当前使用的函数更快的方法计算中值?Python应该实现哪种算法来确定中位数?

您将使用最小-最大中位数堆在恒定时间内找到最小值、最大值和中位数,并用线性时间来构建堆。如果您想了解有关使用堆获取媒体的更多信息,请阅读此处


此处,最佳中值查找算法中的示例代码需要线性时间,可按如下方式实现:

对于小数据集,排序和搜索方法可以更快并减少开销,但这种方法最适合于大数据集


算法如下所示:

至少,您只需对足够多的元素进行排序,就可以知道您已对列表的前半部分进行了排序。