演算法設計與分析之眾數和重數

2021-09-27 09:45:17 字數 691 閱讀 4689

給定含有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 蠻力法 列舉法 窮舉法 暴力法 要求設計者找出所有可能的情況,然後選擇其中一種情況,若該情況不可行 或不是最優...