Study/자료구조

[자료구조] 정렬 #2 - 선택정렬 (Selection Sort)

_gayeon 2021. 2. 2. 11:53

선택정렬이란?

: 제자리 정렬 알고리즘 중 하나

- 제자리 정렬: 입력배열 이외의 다른 메모리는 요구하지 않는 정렬방법

- 현재 있는 값 중 가장 최솟값을 앞으로! (오름차순 정렬시)

 

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

 

구현 (오름차순)

void selectionSort(int a[], int size) {
    int min;
    
    for(int i=0; i<size-1; i++){
        min = i;
    	for(int j=i+1; j<size; j++){
            if(a[min] > a[j]){
            	min = j;
            }
        }
        if(min != i){ // 최소가 자기 자신인 경우는 이동x
          int temp = a[i];
          a[i] = a[min];
          a[min] = temp;
        }
    }
}

 

출처

gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html