給定含有n個元素的多重集合s,每個元素在s中的次數稱為該元素的重數。多重集s中重數最大的元素稱為眾數。
例如,s=。眾數為2,其重數為3。
任務:對於給定的由n個自然數組成的多重數集s,程式設計計算s的眾數及其重數。
將第乙個數作為軸值,對序列進行分割,得到兩個子串行(不包括軸值),並統計出現次數cout
如果cout大於分割得到的兩個子串行的長度,則該值即為眾數;
如果左序列的長度大於count,則眾數可能出現在左子串行中;
如果右序列的長度大於count,則眾數可能出現在右子串行中;
#include using namespace std;
struct mdata;
void msort(int a, int s, int e, mdata &result)
if(leftresult.count)
if(right-s>result.count) msort(a,s,right-1, result);
if(e-right>result.count) msort(a,right+1,e,result);
return ;
}int main()
; int a[10]=;
msort(a,0,9,result);
cout
}
演算法設計與分析之動態規劃
include void main system pause 用陣列實現斐波那契函式 include include intmain int i 0 for i 2 i 20 i for i 0 i 20 i system pause return0 遞迴實現斐波那契函式 include intfi...
演算法設計與分析之 排序篇
本篇列出了以下演算法 1 二分查詢 2 氣泡排序 3 插入排序 4 二路歸併排序 5 快速排序 6 選擇排序 二分查詢 public static intarraybinarysearch int array,int key if key array mid else return 1 氣泡排序 p...
演算法設計與分析之蠻力法
蠻力法是指採用遍歷 掃瞄 技術,即採用一定的策略將待求解問題的所有元素依次處理一次,從而找出問題的解。依次處理所有元素是蠻力法的關鍵,為了避免陷入重複試探,應保證處理過的元素不再被處理。1 蠻力法 列舉法 窮舉法 暴力法 要求設計者找出所有可能的情況,然後選擇其中一種情況,若該情況不可行 或不是最優...