中位數定理

2021-10-16 01:24:20 字數 666 閱讀 3896

背景: 如果有乙個數軸,數軸上有若干個點。要在數軸上找一點,使得它到各個點的距離之和最短。

結論:中位數就是最優解。中位數有這樣的性質 :所有數與中位數的絕對差之和最小。中位數是數列中間的那個數,或者是中間的那兩個數之一。

**實現:

#include

#include

using

namespace std;

const

int maxn =

1e5+10;

int n, a[maxn]

;int

main()

//使用nth_element()的寫法

#include

#include

using

namespace std;

const

int maxn =

1e5+10;

int n, a[maxn]

;int

main()

其它拓展:3167. 星星還是樹

補充:除了用sort()完整排序再找中位數外,可以用nth_element()直接找中位數

中位數定理

概括 結論 這些點的中位數就是目標點。證明 任意找乙個點,比如圖中的大灰點,它的左邊有4個點,右邊兩個。現在我們嘗試把它移動一點,比較距離和。1.向左移一點點,假設移動了x距離,則灰點左邊4個點到它的距離各減少了x,總共減少s1 4x 灰點右邊兩個點到它的距離各增加了x,總共增加s2 2x 6個點的...

中位數的中位數

參照王曉東的演算法設計 中位數的中位數,即將一串數分成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 線性...

BFPRT(中位數的中位數)演算法

又稱為 中位數的中位數演算法 該演算法由 blum floyd pratt rivest tarjan 在1973年提出,最壞時間複雜度為o n 最差的空間複雜度為o logn 演算法步驟 1 將 n 個元素劃分為 n 5 個組,每組 5 個元素,若有剩餘,捨去 2 使用排序方法找到 n 5 個組中...