The One day 中位數的計算

2022-04-09 22:01:36 字數 1362 閱讀 6065

"""

中位數是有序列表中間的數。如果列表長度是偶數,中位數則是中間兩個數的平均值。

例如,[2,3,4] 的中位數是 3

[2,3] 的中位數是 (2 + 3) / 2 = 2.5

設計乙個支援以下兩種操作的資料結構:

void addnum(int num) - 從資料流中新增乙個整數到資料結構中。

double findmedian() - 返回目前所有元素的中位數。

""""""

author :jiyanjiao

date : 2019-10-21

"""class

medianfinder:

nuber_list =

sum =0

def__init__

(self):

"""initialize your data structure here.

"""def addnum(self, num: int) ->none:

def findmedian(self) ->float:

nb =self.nuber_list

oder_list =

le =len(nb)

if le <=1:

raise exception("

中位數至少需要兩位數")

for i in

range(0, le):

for j in range(i+1, le):

if nb[j] tmp =nb[i]

nb[i] =nb[j]

nb[j] =tmp

print

(nb[i])

i += 1oder_le =len(oder_list)

if oder_le % 2 ==0:

m1 = (oder_list[int(oder_le/2)]+oder_list[int(oder_le/2)-1])/2

else

: m1 = oder_list[int(oder_le/2)]

print

(m1)

returnm1#

your medianfinder object will be instantiated and called as such:

if__name__ == '

__main__':

obj =medianfinder()

obj.addnum(1)

obj.addnum(2)

obj.addnum(4)

obj.addnum(3)

obj.addnum(5)

param_2 =obj.findmedian()

中位數的中位數

參照王曉東的演算法設計 中位數的中位數,即將一串數分成n段,求其排好序了的中間那個數,再把這些所有中位數再求一次中位數。for int i 0 i r p 4 5 i 找中位數的中位數,r p 4即上面所說的n 5 int x lineselect a,p,p r p 4 5,r p 4 10 線性...

SQL計算中位數

表還是total sales新增一項 表 sql語句 select from select a1.name,a1.sales,count a2.sales sales rank from total sales a1,total sales a2 where a1.sales a2.sales or...

演算法 中位數計算

中位數 median 1 定義 一組資料按從小到大 或從大到小 的順序依次排列,處在中間位置的乙個數 或最中間兩個資料的平均數,注意 和眾數不同,中位數不一定在這組資料中 注 當個數為基數時,取最中間位置的數 當個數為偶數時,取最中間兩個數的平均數。2 從小到大排序,可以先用氣泡排序,然後取中位數,...