선택 정렬을 수행하지만 역방향으로 프로그램을 작성하려고합니다. 에서 것과 같이, 가장 큰 수를 찾아 내고 마지막 수로 교환하십시오. 왜 이것이 작동하지 않는지 나는 모른다.Java - 역순으로 선택 정렬
업데이트 코드에 따르면 의견.
import java.util.Scanner;
public class Problem20 {
public static void main(String[] args){
int data[] = new int[10];
Scanner scan = new Scanner(System.in);
System.out.print("Please enter 10 numbers: ");
for (int i = 0; i < 10; i++)
{
data[i] = scan.nextInt();
}
sortBig(data);
}
public static void sortBig(int[] data){
int i, j, maxIndex, tmp;
for (i = data.length - 1; i >= 0; i--)
{
maxIndex = i;
for (j = i-1; j >=0; j--)
if (data[j] > data[maxIndex])
maxIndex = j;
if (maxIndex != i)
{
tmp = data[data.length - 1];
data[data.length - 1] = data[maxIndex];
data[maxIndex] = tmp;
}
}
for (int r = 0; r < data.length; r++){
System.out.print(data[r] + " ");
}
}
}
디버거를 사용하여 프로그램의 코드를 단계별로 실행하여 실제로 수행중인 작업을 찾으십시오. –
@ PeterLawrey 사람들을 괴롭히기 위해 여기에 오기 전에 여러 번 시도했습니다. – BluceRee
실제로 j 값을 사용 했습니까? 아마도 data.length - 1 대신에? – Cameron