中位数

来源:互联网 发布:手机号码跟踪软件 编辑:程序博客网 时间:2024/05/18 20:08

问题描述:给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。

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

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

解题思路:求数组的中位数,首先应该对数组进行排序。如果数组中元素个数为奇数,则第(n/2+1)个数为该数组的中位数。如果数组中元素个数为偶数,则(n/2+(n+2)/2)为该数组的中位数。

实现代码:

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];
        
        }
    }
};

做题感想:进一步体会排序的重要性。

原创粉丝点击