先来看中位数的定义,提取一下关键词,中位数将一组按照顺序排序好的数据,分成两部分,例如 1 2 3 4 5 6,中位数 3.5 将数据分成了[1,2,3]和[4,5,6],想看定义的同学可以自行阅读
中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。
解法一:暴力解法
核心思路是直接按顺序插入新元素。计算中位数时分为两种情况:当数组长度为奇数时直接返回中间元素;当长度为偶数时则取中间两个元素的平均值。该算法的时间复杂度为O(n),每个元素的插入操作耗时O(logn)。虽然效率不高,但对于题目给定的5*10^4*10^5级别数据量仍可勉强通过。
c