C語言(23)眾數問題

2021-08-05 23:56:55 字數 826 閱讀 4195

描述

所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,

多重集合s重的重數最大的元素成為眾數。例如:s=,則多重集s的眾數是2,其重數為3。

現在你的任務是:對於給定的由m個自然數組成的多重集s,計算出s的眾數及其重數。

輸入第一行為n,表示測試資料組數。(n<30)

每組測試的第一行是乙個整數m,表示多重集s中元素的個數為m

接下來的一行中給出m(m<100)個不大於10萬的自然數

(不會出現不同元素出現的次數相同的情況,如:s=)。

輸出每組測試資料輸出一行,包含兩個數,第乙個是眾數,第二個是其重數,中間以空格隔開。

樣例輸入

1

61 2 2 2 3 5

樣例輸出

2 3
#include#include#includevoid sort(int buf, int len)

} if(k != i) }}

int main()

len=i;

sort(buf,len);

j=0;

for(i=0; i//printf(": %d 2:%d \n", buf1[j], buf2[j]);

i--;

j++;

} max=0;

for(i=1; i}

printf("%d %d\n", buf2[max], buf1[max]);

} return 0;

}

c語言分治法求眾數重數 分治法之眾數問題

實驗總結 剛開始我沒有想到可以用分治法來做,用的是陣列來做。做完以後發現演算法太過複雜,而且處理較大的n時,時間複雜度和空間複雜度都比較大。於是我參考了演算法答案那本書,學到了分治法來解決這道題。但是在完成了用分治法的 以後,我發現了問題 輸出應該為 分治法解決這道題有乙個大前提 多重集中的元素是有...

演算法 眾數問題

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

眾數問題分析

問題描述 給定乙個陣列,找出其中出現次數最多的那個元素 即眾數 核心思想 普遍的解決思路。如果我們將所有元素的出現次數進行統計,並從中找出次數中的最大值,那麼,這個最大值對應的元素就是眾數。從這一思想出發,我總結出以下兩種演算法 演算法1 利用排序演算法統計 演算法2 利用陣列或雜湊表統計 演算法1...