题解 | #数据流中的中位数#

数据流中的中位数

http://www.nowcoder.com/practice/9be0172896bd43948f8a32fb954e1be1

C语言求数据流中的中位数

解题思路

在数据流的输入时,维护一个递增序列,使用插入排序进行维护 然后计算中位数

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param num int整型 
 * @return 无
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
//定义一个全局的变量 记录插入元素
static int array[1000];
static int arr_top=0;
void Insert(int num ) {
    // write code here
    //每次插入 进行插入排序 插入到合适的位置
    //保证插入的顺序是有序的
    int i=0;
    //第一个元素直接插入
    if(arr_top==0){
        array[arr_top]=num;
    }
    else{
        i=arr_top-1;
        while(num<array[i]&&i>=0){
            array[i+1]=array[i];
            i--;
            }
        array[i+1]=num;
    }
    arr_top++;
}
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param 无 
 * @return double浮点型
 */
double GetMedian() {
    // write code here
    double ans=0;
    
    if(arr_top%2)
        ans=array[arr_top/2];
    else
        ans=((double)array[arr_top/2]+(double)array[arr_top/2-1])/2;
    return ans;
}
全部评论

相关推荐

迟缓的斜杠青年巴比Q...:简历被投过的公司卖出去了,我前两天遇到过更离谱的,打电话来问我有没有意向报班学Java学习,服了,还拿我学校一个学长在他们那报班学了之后干了华为OD当招牌
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务