-1
주어진 ArrayList
을 내림차순으로 정렬하는 간단한 삽입 정렬 알고리즘을 구현하려고합니다.Java가 main 메소드의 모든 코드를 실행하지 않습니다
import java.util.ArrayList;
import java.util.Scanner;
public class InsertionSort {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<Integer>();
while (reader.hasNextInt()) {
list.add(reader.nextInt());
}
sort(list);
for (int i = 0; i < list.size(); i++) {
System.out.print(Integer.toString(list.get(i)) + " ");
}
}
private static void sort(ArrayList<Integer> list) {
for (int i = 1; i < list.size(); i++) {
int key = list.get(i);
int j = i - 1;
while (j >= 0 && list.get(j) < key) {
list.set(j + 1, list.get(j));
j--;
}
list.set(j + 1, key);
}
}
}
그러나, 때로는 for
루프에서 System.out.print
방법이 항상 목록의 모든 요소에 대해 실행되지 않습니다 여기
모든 코드입니다. 다음은 입력 및 출력 샘플입니다.
// Input:
31
41
59
26
41
58
^C
// Output:
59 58 41
// Input:
5
2
4
6
1
3
^C
// Output:
6 5
왜 이런 일이 발생하는지 이해할 수 없습니다. 미리 감사드립니다.
변경없이 코드를 사용하여 내 컴퓨터에서 예상대로 작동합니다 ... 주 방법 끝에 'System.out.println();'을 추가하십시오. –
명령 줄이나 IDE 콘솔에 있습니까? – oopexpert
64 비트 Windows 10 머신에서 Java 8 명령 행을 사용하고 있습니다. –