알아가기/Java

[Java] array 값 정렬하기 w/o Arrays.sort()

XEV 2022. 12. 24. 12:29

조건이 만족하지 않을 때까지 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;
    }
}