a214: 最少交換次數
Tags : Soriting
Accepted rate : 20人/20人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-03-30 19:03

Content

把一群數字排序好的方法有很多,每一種排序都有自己的特性。

現在給你一堆未排序的數字,你每次可以挑選兩個數字交換位置,請你把這些數字從大排到小,並計算最少需要進行幾次的交換才能完成。

Input

第一行輸入一個整數 $n$ 代表人數。 $n \le 100$。

第二行輸入 $1 \sim n$ 號的成績(可以假設所有人的成績都不相同),成績不超過1000分。

Output

第一行輸出最少需要交換的次數。

第二行輸出所有數字從大排到小的結果。

Sample Input #1
5
50 80 60 70 90
Sample Output #1
2
90 80 70 60 50
Sample Input #2
5
50 90 80 70 60
Sample Output #2
4
90 80 70 60 50
測資資訊:
記憶體限制: 512 MB
不公開 測資點#0 (10%): 1.0s , <1K
不公開 測資點#1 (10%): 1.0s , <1K
不公開 測資點#2 (10%): 1.0s , <1K
不公開 測資點#3 (10%): 1.0s , <1K
不公開 測資點#4 (10%): 1.0s , <1K
不公開 測資點#5 (10%): 1.0s , <1K
不公開 測資點#6 (10%): 1.0s , <1K
不公開 測資點#7 (10%): 1.0s , <1K
不公開 測資點#8 (10%): 1.0s , <1K
不公開 測資點#9 (10%): 1.0s , <1K
Hint :

上課教過的選擇排序法是可以讓交換次數最少的方法喔。

以下為選擇排序法 從小排到大 的Python參考程式碼

Tags:
Soriting
出處:
[管理者:
ktlai (K.我已霸榜.Tlai)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」