国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

數(shù)據(jù)流中的中位數(shù)

2019-11-08 02:03:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
題目描述

如何得到一個(gè)數(shù)據(jù)流中的中位數(shù)?如果從數(shù)據(jù)流中讀出奇數(shù)個(gè)數(shù)值,那么中位數(shù)就是所有數(shù)值排序之后位于中間的數(shù)值。如果從數(shù)據(jù)流中讀出偶數(shù)個(gè)數(shù)值,那么中位數(shù)就是所有數(shù)值排序之后中間兩個(gè)數(shù)的平均值。

IDEA

1.采用插入排序,插入一個(gè),調(diào)整一次順序;

2.兩個(gè)堆實(shí)現(xiàn)。一個(gè)大頂堆,一個(gè)小頂堆,大頂堆中所有數(shù)<=小頂堆中所有數(shù)。

CODE

1.

class Solution {PRivate:    vector<int> vec;    int n;public:    void Insert(int num)    {        vec.push_back(num);        n=vec.size();        int i=n-1;        while(i>0&&vec[i]<vec[i-1]){            int tmp=vec[i-1];            vec[i-1]=vec[i];            vec[i]=tmp;            i--;        }     }    double GetMedian()    {         return (vec[n/2]+vec[(n-1)/2])/2.0;    }};2.

class Solution {private:    int count=0;    priority_queue<int,vector<int>,less<int> >big_heap;    priority_queue<int,vector<int>,greater<int> >small_heap;public:    void Insert(int num)    {        count++;        if(count%2){            small_heap.push(num);            big_heap.push(small_heap.top());            small_heap.pop();                    }else{            big_heap.push(num);            small_heap.push(big_heap.top());            big_heap.pop();        }    }    double GetMedian()    {         if(count%2){            return big_heap.top();        }else{            return (big_heap.top()+small_heap.top())/2.0;        }    }};


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 楚雄市| 霍州市| 晋城| 安多县| 双流县| 公安县| 安塞县| 克什克腾旗| 桐柏县| 宜川县| 思南县| 新平| 汶川县| 广德县| 盐津县| 浦江县| 桂阳县| 南召县| 台南市| 雅安市| 光泽县| 武乡县| 启东市| 镇远县| 上虞市| 中牟县| 凤山县| 米脂县| 阿鲁科尔沁旗| 和龙市| 元谋县| 新宁县| 湖口县| 海林市| 固原市| 邵阳市| 吴旗县| 金堂县| 布尔津县| 黑山县| 黎川县|