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

数据流中的中位数

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;
}
全部评论

相关推荐

03-26 12:00
已编辑
门头沟学院 Java
offer魅魔_oc...:100-200每天,你还要倒贴100
点赞 评论 收藏
分享
03-26 13:04
已编辑
电子科技大学 算法工程师
xiaowl:你这个简历“条目上”都比较有深度性,但是实际上面试官又没法很好的评估你是怎么达到很多看上去很厉害的结果的。要避免一些看上去很厉害的包装,比如高效的内存复用策略的表达,如果仅是简单的一些内存共享机制,而且面试上也没有深挖的空间,就不要这样表达。比如,工程化模式本质上可能就是定义了一些abstract class,那也就没特别多值得讲的内容。建议简历上应该侧重那些你花了大量时间和精力解决、研究的问题,不要过分追求“丰富”,而是关注在技术深入度、问题解决能力的表现上。
没有实习经历,还有机会进...
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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