我的算法工作...幾乎...由於某種原因,排序後最後兩個元素的順序錯誤。此外,打印聲明並未告訴我first
向右移動。在單獨鏈接列表上的選擇排序
public static SLL sort(SLL list)
{
SLLNode first = list.first ;
SLLNode second ;
while (first!=null)
{
System.out.println(first.data); // for seeing if first does move to the right
second = first.succ ;
while (second!=null)
{
if (second.data.compareTo(first.data)<0)
{
String temp = first.data ;
first.data = second.data ;
second.data = temp ;
}
second = second.succ ;
}
first = first.succ ;
}
return list ;
}
之前排序:FFF fff Hi AAA Bye Ciao
排序後:AAA Bye Ciao FFF Hi fff
我打印語句輸出FFF
起初,那麼只有fff
的
如果只打算比較字符串,則使用'compareToIgnoreCase'。或者,或者使用'System.String.Compare(stringA,stringB,true)','bool'參數告訴函數是否應該區分大小寫。 – Darhuuk 2011-03-28 16:04:04
@N 1.1,謝謝!任何想法爲什麼印刷聲明不給我我所期望的? – raoulbia 2011-03-28 16:21:05