#2257. 求中位数

求中位数

求中位数

说明

中位数指的是一组数,如果按照大小排序排好后最中间的那个数的值,如果有偶数个元素,那么就是最中间两个数的平均数!

比如:2 5 8 1 6,排序后的结果为 1 2 5 6 8,那么这组数的中位数就是 5

再比如:8 9 1 2 3 0,排序后的结果为 0 1 2 3 8 9,那么这组数的中位数就是 (2+3)/2=2.5


输入格式

  • 第一行:一个整数 n 代表有 n 个数。
  • 第二行:n 个数的值。

输出格式

中位数(结果保留 1 位小数)。


样例

输入数据 1

5
2 5 8 1 6

输出数据 1

5.0

解题思路

  1. 排序​:首先将输入的 n 个数进行排序。
  2. 判断奇偶​:判断 n 是奇数还是偶数:
    • 如果是奇数,中位数就是排序后的中间元素。
    • 如果是偶数,中位数是排序后中间两个数的平均值。
  3. 输出结果​:根据中位数的计算结果输出,结果保留 1 位小数。

时间复杂度

排序的时间复杂度是 O(n log n),因此本题的时间复杂度是 O(n log n)