所有員工的年齡排序《演算法很美》
所有員工的年齡排序
- 公司現在要求對幾萬員工的年齡進行排序,因為公司員工的人數非常多,所以要求排序演算法的效率要非常高,你能寫出這樣的程式嗎
- 輸入:輸入可能包含多個測試樣例,對於每個測試案例,
- 輸入的第一行為一個整數n(1<= n<=1000000): 代表公司內員工的人數。
- 輸入的第二行包括n個整數:代表公司內每個員工的年齡。其中,員工年齡age的取值範圍為 (1<=age<=99)。
- 輸出:對應每個測試案例,
- 請輸出排序後的n個員工的年齡,每個年齡後面有一個空格。
思路: 你可能會看不出來,其實用的就是計數排序。
計數排序適用於資料範圍小且已知
不懂計數排序的,先看我計數排序的文章
public class 所有員工年齡排序 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int i = 0;
int[] arr = new int[x];
while(i<x){
int p = scanner.nextInt();
arr[i++] = p;
}
sort(arr);
Util.print(arr);
}
public static void sort(int[] A){
int max = Util.maxOf(A);
int[] helper = new int[max+1];
for(int e : A){
helper[e]++;
}
int current = 0;
for(int i=1;i<helper.length;i++){
while(helper[i]>0){
A[current++] = i;
helper[i]--;
}
}
}
}
相關文章
- 第三章:查詢與排序(下)----------- 3.27 用計數排序解決員工年齡問題排序
- 逆序對《演算法很美》演算法
- 壓縮字串《演算法很美》字串演算法
- 替換字串中的空格《演算法很美》字串演算法
- 如何給廣東省人口按照年齡來排序?排序
- 字串匹配之KMP《演算法很美》字串匹配KMP演算法
- 漢諾塔遊戲《演算法很美》遊戲演算法
- 10年工齡的90後程式設計師折騰部落格的這些年程式設計師
- 判斷兩字串的字符集是否相同《演算法很美》字串演算法
- SQL217 對所有員工的薪水按照salary降序進行1-N的排名SQL
- 工齡怎麼計算excel公式精確到月 如何設定工齡計算公式Excel公式
- 部門工資最高的員工
- 搞笑的排序演算法-睡覺排序排序演算法
- 【JAVA演算法】排序演算法 -- 快速排序Java演算法排序
- 排序演算法__桶排序排序演算法
- 排序演算法__快速排序排序演算法
- 排序演算法__堆排序排序演算法
- 排序演算法:快速排序排序演算法
- 排序演算法 - 堆排序排序演算法
- 排序演算法-堆排序排序演算法
- 排序演算法 - 快速排序排序演算法
- Teamblind:77.22%的特斯拉員工擔心裁員
- 貝索斯年度股東信:亞馬遜有84萬名員工將 對所有員工進行新冠定期檢測亞馬遜
- 排序演算法之快速排序的實現排序演算法
- 出現k次與出現1次《演算法很美》演算法
- 小頂堆與topK的具體程式碼實現《演算法很美》TopK演算法
- 演算法之常見排序演算法-氣泡排序、歸併排序、快速排序演算法排序
- 員工不出力的原因
- AppleInsider:2014年至2021年蘋果公司的女性員工增加了89% 員工隊伍日益多元化APPIDE蘋果
- 排序演算法--氣泡排序排序演算法
- 排序演算法:選擇排序排序演算法
- 排序演算法__氣泡排序排序演算法
- 排序演算法__選擇排序排序演算法
- 排序演算法__歸併排序排序演算法
- 排序演算法__計數排序排序演算法
- 排序演算法__希爾排序排序演算法
- 排序演算法__基數排序排序演算法
- 排序演算法–氣泡排序排序演算法