조건이 만족하지 않을 때까지 swap
array 안의 value 들이 서로 인접해 있는 value 와 서로 크기 비교를 한다.
이 과정은 for loop 으로 이루어지고 그 외부를 감싸는 while loop 를 멈추지 않게 한다.
만약 모든 정렬이 완료되어 더 이상 크기 비교 조건을 만족하지 않으면 그 회 while loop 는 false 값을 유지하여 종료가 된다.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = {12, 56, 34, 89, 23, 67, 73};
int[] sorted = sortIntegers(array);
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(sorted));
}
public static int[] sortIntegers(int[] array) {
int[] sortedArray = new int[array.length];
for(int i = 0; i < array.length; i++) {
sortedArray[i] = array[i];
}
boolean flag = true;
int temp;
while(flag) {
flag = false;
for(int i = 0; i < sortedArray.length - 1; i++) {
if(sortedArray[i] < sortedArray[i + 1]) {
temp = sortedArray[i];
sortedArray[i] = sortedArray[i + 1];
sortedArray[i + 1] = temp;
flag = true;
}
}
}
return sortedArray;
}
}
'알아가기 > Java' 카테고리의 다른 글
[Java] ArrayList 모든 원소 출력하기 (0) | 2022.12.31 |
---|---|
[Java] 파일 상대경로 설정 (Relative Path on Mac) (0) | 2022.12.27 |
[Java] 잘못된 입력에 대해 exception 으로 재입력 유도 (0) | 2022.12.26 |
[Java] for-each 사용 (0) | 2022.12.23 |
[Java] Scanner 와 BufferedReader 사용 (0) | 2022.12.21 |