分治演算法解決眾數問題

2021-10-07 19:19:22 字數 765 閱讀 5822

題目:給定含有n個元素的多重集合s, 每個元素在s**現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數,如s = 。多重集s的眾數是2,其重數為3。

分析:

#include

using

namespace std;

#define m 100

int a[m]

;int num,val,n;

//重數, 眾數,個數

void

find

(int

&l,int

&r,int mid)

//找中位數的最左,最右邊界位置

void

fun(

int low,

int high)

if(i-low > num)

if(high -j > num)

}main()

-執行結果:

輸入元素個數:

6輸入元素:

1 2 2 5 3 2

1,2,2,2,3,5,

眾數:2 重數:3

--------------------------------

process exited after 11.13 seconds with return value 0

請按任意鍵繼續. .

.

分治演算法 眾數問題

problem description 給定含有n個元素的多重集合s,每個元素在s 現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。例如,s 多重集s的眾數是2,其重數為3。對於給定的由n 個自然數組成的多重集s,計算s的眾數及其重數。如果出現多個眾數,請輸出最小的那個。input 輸入...

眾數問題 分治演算法

給定含有n個元素的多重集合s,每個元素在s 現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。例如,s 多重集s的眾數是2,其重數為3。對於給定的由n 個自然數組成的多重集s,計算s的眾數及其重數。如果出現多個眾數,請輸出最小的那個。input 輸入資料的第1行是多重集s中元素個數n n ...

分治演算法 眾數問題

給定含有 n 個元素的多重集合 s,每個元素在 s 現的次數稱為該元素的重數。多重 集 s 中重數最大的元素稱為眾數。例如,s 多重集 s 的眾數是 2,其重數為 3。對於給定的由 n 個自然數組成的多重集 s,程式設計計算 s 的眾數及其重數。輸入資料由檔名為 input.txt 的文字檔案提供。...