2013-05-07 2 views
0

이 코드를 가지고 있으며 스왑 카운트를 계산하는 데 약간의 도움이 필요합니다. 나는 그것이 마크 인 for 루프가 필요하다고 생각하지만 스왑 카운트를 추출하는 방법을 이해하지 않는다. 미리 감사드립니다.Java 선택 스왑 카운트 정렬

public class Selection 
{ 
    public static void SelectionSort (int [ ] num, int howmany) 
    { 
     int i, j, first, temp; 
     int comparecount = 0; 
     int swapcount = 0; 

     for (i = num.length - 1; i > 0; i--) 
     { 
      first = 0; 
      for(j = 1; j <= i; j ++) 
      { 
       comparecount++; 

       if(num[ j ] < num[ first ])   
        first = j; 
      } 
      temp = num[ first ]; //need to count swaps ??? 
      num[ first ] = num[ i ]; 
      num[ i ] = temp; 
     } 

     System.out.print(comparecount); 
     System.out.print(swapcount); 
    } 
} 
+0

에서 측면과 구별 나란히 표시 ?? – Breavyn

+0

또한'int howmany'는 어디에 사용됩니까? 왜 거기에 있니? – Breavyn

+0

나는 그것을 다른 것으로 넘겨주고 그것을 지우지 않았다. –

답변

0

정말로 자신의 질문에 답변하셨습니다. 당신은 스왑을 계산하기를 원한다고 말하고, 그리고 나서 당신이 항목을 교환하는 곳에서 정확하게 주석을 달았습니다 .... 그래서 스왑 카운트를 증가시킵니다. 당신의 숫자를하고 있습니다에 println 반대로 당신이 인쇄를 사용하는 디스플레이 오류로

당신이 당신의 의견에`swapcount`를 증가 할 수 서로

+0

의견에 스왑 카운트에 관해서는 122549를 얻었는데, 나는 옳다고 생각하지 않습니다. –

+0

몇 개의 요소를 정렬하고 있습니까? 그것은 정말로 옳을 수 있습니다. 선택 정렬은 N^2 알고리즘이므로 400 개가 넘는 요소가 있으면이 요소를 많이 차지할 가능성이 높습니다. – greedybuddha

+0

그것은 단지 50 요소입니다. –