★問題描述:
給定含有n個元素的多重集合s,每個元素在s中出現的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。
例如,s=。
多重集s的眾數是2,其重數為3。
★程式設計任務:
對於給定的由n個自然數組成的多重集s,程式設計計算s的眾數及其重數。
★資料輸入:
輸入資料由檔名為input.txt的文字檔案提供。檔案的第1行多重集s中元素個數n;接下來的n行中,每行有乙個自然數。
★結果輸出:
程式執行結束時,將計算結果輸出到檔案output.txt中。輸出檔案有2行,第1行給出眾數,第2行是重數。
輸入檔案示例 輸出檔案示例
input.txt output.txt
6 2
1 322
235
源**:#include
#include
using namespace std;
//結構體用來儲存眾數的元素與重數
typedef struct
zs;//記錄中位數的起始下標
typedef struct
node;
//快排
zs x;
//int data=1;
void sort(int a,int s,int t)//對a[s]到a[t]的元素排序
}return m;
}//眾數的重數求取
void mode(int *a,int l,int r)
sort(a,0,n-1);
mode(a,0,n-1);
cout<
眾數問題(遞迴 分治)
所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s,計算出s的眾數及其重數。解題思路 1 快速排序 2 求中位數 3 計算...
分治演算法 眾數問題
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 ...