中位数

来源:互联网 发布:单片机密码锁程序 编辑:程序博客网 时间:2024/06/03 18:24

1.问题描述:

给定一个未排序的整数数组,找到其中位数。

中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。

2.思路:正如给定样例

给出数组[4, 5, 1, 2, 3], 返回 3

给出数组[7, 9, 4, 5],返回 5

首先将整数数组进行排序,再判断它的容量n是奇数还是偶数,如果是偶数则其中位数为n/2-1,如果是奇数,它的中位数就是(n-1)/2

3.代码:

class Solution {public:    /**     * @param nums: A list of integers.     * @return: An integer denotes the middle number of the array.     */    int median(vector<int> &nums) {        // write your code here        sort(nums.begin(),nums.end());        int n=nums.size();        if(n%2==0)        {  return nums[n/2-1];}         else { return nums[(n-1)/2];}    }};

4.感想:感觉这也是排序中比较简单的一个题目啦

原创粉丝点击