문제
정수 배열 numbers의 요소들을 오름차순으로 정렬한다.
코드
int[] numbers = { 5, 4, 3, 2, 1 };
int temp = 0;
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = 0; j < numbers.length - i - 1; j++) {
if (numbers[j] > numbers[j + 1]) {
temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
for(int i : numbers) {
System.out.print(i + " ");
}
현재 값이 뒤의 값보다 크다면 swap한다.
1회차 루틴
> 5와 4를 비교하여 큰 값을 뒤로 보낸다. {4, 5, 3, 2, 1}
> 5와 3 {4, 3, 5, 2, 1}
> 5와 2 {4, 3, 2, 5, 1}
> 5와 1 {4, 3, 2, 1, 5}
이제 5는 가장 큰 값이다.
이런 식으로 가장 큰 값이 골라지면 그 값(인덱스)를 제외한 부분을 버블 정렬하는 식으로 한다.
그러므로 안쪽 반복문의 조건식은 배열의 길이 - 바깥쪽 반복 - 1이 된다.
쉬운 오름차순 정렬 방법
import java.util.Arrays;
// ...
int[] numbers = { 5, 4, 3, 2, 1 };
Arrays.sort(numbers);
for(int i : numbers) {
System.out.print(i + " ");
}
'Java' 카테고리의 다른 글
[Java] 부모 클래스의 기본 생성자가 없는 경우의 상속 (0) | 2022.08.20 |
---|---|
[Java] 문자열 뒤집기 (0) | 2022.08.13 |
자바 - 내부 클래스(Inner class) (0) | 2022.08.10 |
자바(Java) - 예외(Exception) (0) | 2022.08.05 |
[Java] 컬렉션 프레임워크(Collection Framework) (0) | 2022.08.03 |