알고리즘

[Java] 정렬 알고리즘 - 선택정렬(Selection Sort)

pullwall 2023. 1. 27. 15:06
728x90
import java.util.Arrays;

public class Main {
    public static void main(String[] args){
        int[] arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8};

        for(int i=0; i<arr.length; i++){
            int minindex = i;
            for(int j=i+1; j<arr.length; j++){
                if(arr[minindex]>arr[j]){
                    minindex = j;
                }
            }

            int tmp = arr[i];
            arr[i] = arr[minindex];
            arr[minindex] = tmp;
        }
        System.out.println(Arrays.toString(arr));
    }
}

https://en.wikipedia.org/wiki/Selection_sort

위 움짤을 보면 이해하기 쉬울 것이다.

 

선택정렬은 시간복잡도가 O(n^2)인 정렬 알고리즘이다.

 

 

자세한 설명은 본인이 공부하면서 정리한 노트를 첨부할테니 참고하길 바란다.

 

728x90