求n個自然數中每個數字出現的次數

2021-09-30 17:09:36 字數 722 閱讀 4093

問題描述

某次科研調查時得到了n個自然數,每個數均不超過15億(1.5 * 109)。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。

思路

1.用數組裝下所有數,之後利用排序()函式對陣列中的所有元素進行排序

2.將第乙個元素定為哨兵,定義conut變數用以統計元素出現次數,其初值為1

3.遍歷第二個到的第n個元素,若哨兵與第i(2~n)個元素相等,則次數加1

4.若哨兵與第i(2~n)個元素不相等,則輸出哨兵值與當前的計數值,並將哨兵更換當前的元素,並使計數值為1

5.遍歷到最後乙個元素時,輸出哨兵值與當前的計值

**

#include#includeusing namespace std;

long long a[200001];

int main()

sort(a,a+n);

long long sentry = a[0];

int count = 1;

for(int i=1; i輸出結果

求 從m個自然數中任取n個數的所有組合

問題 編寫乙個遞迴演算法,找出從自然數1,2,3,m中任取n個數的所有組合。例如 m 5,n 3時,所有組合為543,542,541,532,531,521,432,431,421,321。方法1 設這m個自然數存放在整數陣列a k 中,a i 存放i 1 0 i n 1 可採用遞迴演算法,例如,m...

歸納策略 求前n個自然數的平方之和

求前n個自然數的平方之和 s 1 2 2 2 3 2 n 2 因為 1 2 2 2 3 2 n2 1 2 3 n 2n 1 3 又由於 1 2 3 n n n 1 2,因此得到 1 2 2 2 3 2 n 2 n n 1 2n 1 6 推導過程 有乙個三角形的數字矩陣 12 2 3 3 3 4 4 ...

前N個自然數的隨機置換

來自 資料結構與演算法分析 c語言描述 練習2.7 問題描述 假設需要生成前n個自然數的乙個隨機置換。例如,和 就是合法的置換,但 卻不是,因為數1出現了兩次而數 3 缺沒有。這個程式常常用於模擬一些演算法。我們假設存在乙個隨機數生成器 randint i,j 它以相同的概率生成 i 和 j 之間的...