2011-03-28 7 views
1

내 알고리즘이 작동합니다 ... 거의 ... 어떤 이유로 정렬 후 마지막 두 요소의 순서가 잘못되었습니다. 또한 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

내 인쇄 문을 출력 한 후 처음 FFFfff

답변

2

자본의 아스키 값보다 작기 때문에 소문자.

ascii 인쇄() 문 그냥 아무것도 보여주지 그건

+0

비교 문자열 만 계획하는 경우'compareToIgnoreCase'를 사용하십시오. 또는,'System.String.Compare (stringA, stringB, true)'를 사용하면,'bool' 매개 변수는 대소 문자 구별 여부를 함수에 알려줍니다. – Darhuuk

+0

@N 1.1, 감사합니다! print 문이 왜 내가 뭘 기대하지 않는지 아는 어떤 생각? – raoulbia

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 

.

+0

지금 코드 수정 됨 – raoulbia

관련 문제