MOOC 10 排序4 統計工齡(20 分)

2021-08-19 21:12:28 字數 1104 閱讀 1581

n名員工的工齡,要求按工齡增序輸出每個工齡段有多少員工。

n(≤),即員工總人數;隨後給出

n個整數,即每個員工的工齡,範圍在[0, 50]。

8

10 2 0 5 7 2 5 2

0:1

2:35:2

7:110:1

這道題目比較簡單,最快捷的方法就是利用桶排序,建立工齡從小到大的計數陣列,陣列下表即代表工齡,陣列內容初始化為0,輸入工齡時,對應下標的陣列內容加1,最後輸出時將不為0的數輸出即可。c++**入下:

#include #include #define maxage 51

using namespace std;

int main()

; for (int i = 0; i < n; i++)

for (int i = 0; i < maxage; i++)

if (count[i])

cout << i << ":" << count[i] << endl;

return 0;

}

桶排序測試結果:

除了桶排序以外,我們還可以利用排序函式將輸入的工齡從小到大排序,輸出時只需要觀察輸出的數(工齡)與其下一位數是否相等,如果相等則繼續尋找下乙個數,同時count++,直到下乙個數與其不相等,則按要求輸出,c++**如下:

int main()

else

count++;

} cout << age[j] << ":" << count << endl;

delete age;

return 0;

}

排序函式測試結果:

可以對比出還是桶排序在此類問題中比較快,占用記憶體較小。

10 排序4 統計工齡 20 分

給定公司n名員工的工齡,要求按工齡增序輸出每個工齡段有多少員工。輸入格式 輸入首先給出正整數n 10 5 即員工總人數 隨後給出n個整數,即每個員工的工齡,範圍在 0,50 輸出格式 按工齡的遞增順序輸出每個工齡的員工個數,格式為 工齡 人數 每項佔一行。如果人數為0則不輸出該項。輸入樣例 810 ...

10 排序4 統計工齡 20 分

給定公司n名員工的工齡,要求按工齡增序輸出每個工齡段有多少員工。輸入首先給出正整數n 10 5 即員工總人數 隨後給出n個整數,即每個員工的工齡,範圍在 0,50 按工齡的遞增順序輸出每個工齡的員工個數,格式為 工齡 人數 每項佔一行。如果人數為0則不輸出該項。8 10 2 0 5 7 2 5 20...

10 排序4 統計工齡 20 分

給定公司n名員工的工齡,要求按工齡增序輸出每個工齡段有多少員工。輸入首先給出正整數n 即員工總人數 隨後給出n個整數,即每個員工的工齡,範圍在 0,50 按工齡的遞增順序輸出每個工齡的員工個數,格式為 工齡 人數 每項佔一行。如果人數為0則不輸出該項。8 10 2 0 5 7 2 5 20 1 2 ...