我必須製作一個程序,按運行時排序歌曲集合。我必須分析一些歌曲,每個歌曲都有一個「標題」字符串,一個「作曲家」字符串和一個「運行時間」整數。輸入將通過stdin傳遞,輸出將在stdout中。按運行時間排序歌曲集合
下面是一個例子輸入:
3
&
Pink Frost&Phillipps, Martin&234933
Se quel guerrier io fossi&Puccini, Giacomo&297539
Non piu andrai&Mozart&234933
M'appari tutt'amor&Flotow, F&252905
輸出:
Se quel guerrier io fossi&Puccini, Giacomo&297539
M'appari tutt'amor&Flotow, F&252905
Non piu andrai&Mozart&234933
我知道我必須通過運行時間整理這些,但我不知道排序算法使用哪個。根據一般的知識,想到的兩個排序算法是合併排序和快速排序,因爲它們似乎是最快的。我也有使用比較器比較集合中兩個「運行時間」元素的想法。
難道有人請指點我正確的方向嗎?
順便說一句--String類有'compareTo(String s)'方法,Integer類也應該有,但是你不應該使用它。在大多數情況下,你只需要**原始**'int'類型。所以比較'int's是隻是簡單的'返回firstInt - secondInt;'更精確...這是你所需要的'公共類TitleComparator實現比較 { \t @覆蓋 \t公衆詮釋比較(MySong firstSong ,MySong second){ \t \t return firstSong.getTitle() - second.getTitle(); \t} }' –
dantuch
2011-05-28 10:56:51