Selection Sort(선택정렬)

hoonie·2022년 8월 29일
0

Sort

목록 보기
2/4

기본 아이디어: 주어진 자료로부터 가장 작은 값의 원소부터 차례대로 선택해서 위치를 교환하는 방식

작동방식
1. 주어진 자료 중 최솟값을 찾는다.
2. 찾은 값을 리스트의 가장 왼쪽값과 교환한다.
3. 교환한 가장 왼쪽값을 제외하고 1,2 과정을 반복한다.

시간복잡도: O(n^2)

java 코드

static int[] selectionSort(int arr[], int size) {
        for(int i = 0; i < size-1; i++){
        	// 우선 현재 i번째 값을 가장 작은 값으로 설정한다.
            int minIdx = i;
            // i번째 이후부터 마지막 요소까지 확인하면서 최솟값이 있으면 그 인덱스로 minIdx를 수정한다.
            for(int j = i+1; j < size; j++){
                if(arr[minIdx] > arr[j]){
                    minIdx = j;
                }
            }
            // 리스트의 가장 왼쪽값과 minIdx번째 값을 교환한다.
            int tmp = arr[i];
            arr[i] = arr[minIdx];
            arr[minIdx] = tmp;
        }

        return arr;
    }

코드에 오류가 있으면 말씀해주세요.

profile
사우루스 팡팡!

0개의 댓글