實驗8
problem b: 求中位數
description
中位數(medians)是乙個統計學名詞,是指將統計總體當中的各個資料的值按大小順序排列起來,形成乙個數列,處於變數數列中間位置的值就稱為中位數。當資料的項數n為奇數時,處於中間位置的資料值即為中位數;當n為偶數時,中位數則為處於中間位置的2個資料值的平均數。
input
輸入為多行,每行為一組測試樣例。每個測試樣例以乙個整數n(n<=1000)開始,後面接著是n個整數。當輸入的n為0時表示輸入結束。
output
每組測試樣例對應一行輸出,為所給的n個整數的中位數,順序與輸入對應。中位數用%lg輸出即可。
sample input
10
1001054
3111
0052
4589
0
sample output
2
5
思路:
1
)注意輸出格式(%lg輸出):用a【n/
2】*1.0可以
也可以強制型別轉化
2)冒泡的優化!count==
0就跳出迴圈
答案:
#include
int main()
for(int i=
0;iif(count==0)
break;}
if(n%2==
0)else
}return0;
}
求中位數總結
今天在某個群中看到有人問在流式的資料中如何動態的維護中位數的方法,因為之前看到同學的乙個問題,當時他沒答出來。但是後來了解到類似top k last k 需要用到最大堆,最小堆一樣,中位數需要利用雙堆維護一下。先複習一下,如果是靜態的資料求取中位數的方法有哪些呢?1 排序 2 fink k 這兩種方...
求列表中位數Python
給你乙個整數列表l,輸出l的中位數 若結果為小數,則保留一位小數 例如 l 0,1,2,3,4 則輸出 2 題目 於pythontip,中位數的計算取決於元素的個數,如果元素個數為奇數個,直接取中間的下標即可,如果為偶數,需要計算中間兩個的和,再取平均值。但是python需要注意整除和除法與其他語言...
海量資料求中位數
參考 1.最簡單 排序 2.堆 4g資料,1g記憶體 步驟 先將1g記憶體都塞進乙個大頂堆,然後小於堆頂的數,插入堆,並pop堆頂,一次遍歷後,得到第1g大的數 第二次遍歷,過濾小於第1g大的數,同樣塞滿乙個1g的大頂堆,小於堆頂的插入堆,並pop堆頂,得到第2g大的數字 3.二分 統計 比如數字範...