2015-01-11 5 views
-3

나는 위의 알고리즘이 제대로 작동하지 않는 이유를 모르겠어요 다음 코드 ..선택 정렬을 구현하는 방법은 무엇입니까?

public void selsort() 
{ 
    int j=0,i,k; int low; 
    for(k = 0; k < ele; k++) 
    { 
     for(i = j;i < ele; i++) 
      if(a[i] < a[i+1]) 
       low = i; 
     if(i!=j) 
     { 
      long temp=a[j]; 
      a[j]=a[i]; 
      a[i]=temp; 
     } 
     j++; 
    } 
} 

있습니다.

제대로 작동하려면 무엇을 수정해야합니까?

+1

같은 코드를 고정 내가 돈 때문에 귀하의 알고리즘이 무엇을해야하는지 알지 못합니다. – Maroun

+0

@MarounMaroun은 전체 배열에서 최소 요소를 찾아서 가장 왼쪽 정렬되지 않은 요소로 바꿔야한다고 명령합니다 (먼저 배열의 첫 번째 요소와 첫 번째 요소를 먼저 교환해야합니다). 정렬 된 배열을 얻을 때까지이 과정을 반복해야합니다. – user4275686

답변

0

는 ..

public void selsort() { 
    int j = 0, i, k; 
    int low; 
    for (k = 0; k < ele; k++) { 
     low = j; 
     for (i = j; i < ele; i++) 
      if (a[i] < a[low]) { 
       low = i; 
      } 
     if (j != low) { 
      int temp = a[j]; 
      a[j] = a[low]; 
      a[low] = temp; 
     } 
     j++; 
    } 
} 

하지만 k insdead j 사용할 수 있습니다, 그리고 더 나은이 입력을 사용하는 대신 PARAMS 클래스 필드 나도 모르는 aele

관련 문제