单链表上的选择排序

时间:2011-03-28 15:54:01

标签: sorting linked-list

我的算法工作...几乎......由于某种原因,排序后最后两个元素的顺序错误。此外,print语句并未向我显示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

我的print语句首先输出FFF,然后只输出fff

2 个答案:

答案 0 :(得分:1)

因为大写字母的ascii值小于小写字母的值。

ascii

答案 1 :(得分:0)

Also, the print statement does not show me that first moves to the right.
System.out.print(); // for seeing if first does move to the right

print()语句只显示任何内容。