1545 最簡單排序

自為風月馬前卒發表於2017-03-20

個人部落格:double.win

1545 最簡單排序

 

 時間限制: 1 s
 空間限制: 1000 KB
 題目等級 : 青銅 Bronze
 
 
 
題目描述 Description

實現從小到大排序。

輸入描述 Input Description

第一行一個整數n

第二行:n個整數,每個用空隔隔開。

輸出描述 Output Description

從小到大依次資料,每行一個,共n行。

樣例輸入 Sample Input

6

1

2

5

4

3

2

樣例輸出 Sample Output

1

2

2

3

4

5

 1 #include <iostream>
 2 using namespace std;
 3 const int MAXN = 100000;
 4 const int k = 1000; // range
 5 int a[MAXN], c[MAXN], ranked[MAXN];
 6  
 7 int main() {
 8     int n;
 9     cin >> n;
10     for (int i = 0; i < n; ++i) {
11         cin >> a[i]; 
12         ++c[a[i]];
13     }
14     for (int i = 1; i < k; ++i)
15         c[i] += c[i-1];
16     for (int i = n-1; i >= 0; --i)
17         ranked[--c[a[i]]] = a[i];//如果是i表達的是原數標號,a[i]就是排序後的正確序列
18     for (int i = 0; i < n; ++i)
19         cout << ranked[i] << endl;
20     return 0;
21 }

 

相關文章