如何使用Python求无序大数组的中位数?
Python实现计算无序大数组的中位数算法
中位数定义:对于有限的数集,可以通过把所有元素高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。
实现思路随机获取无序数组中一个元素作为分割元素, 以分割元素为界限,将数组分割大小数组两部分。
若“小”数组的长度大于中位数索引值, 则基于“小”数组继续选取随机值缩小其长度。
舍弃比中位数值小的元素, 以减少计算量,相应的中位数索引左移对应长度, 保证相对原始数据索引长度不变。
判断无序数组中该分割元素个数, 若大于新的中位数索引, 则该分割元素就是中位数。若小于则舍弃分割元素, 因此调整中位数的索引值,左移对应长度。
对“大""数组重复上述计算。
Python实现测试结果测试环境:
测试结果:
同时,由于随机抽取元素,进行计算,算法表现稳定性不是很好。
若对您有所帮助,欢迎大家评论、留言。Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有