선택 정렬(Selection Sort)

선택 정렬 개념 정리

  • 제자리 정렬(in-place sorting) 알고리즘의 하나

    • 입력 배열(정렬되지 않은 값들) 이외에 다른 추가 메모리를 요구하지 않는 정렬 방법

  • 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘

    • 첫 번째 순서에는 첫 번째 위치에 가장 최솟값을 넣는다.

    • 두 번째 순서에는 두 번째 위치에 남은 값 중에서의 최솟값을 넣는다.

  • 과정 설명

    • 주어진 배열 중에서 최솟값을 찾는다. (최솟값의 인덱스를 찾는다)

    • 그 값을 맨 앞에 위치한 값과 교체한다.

    • 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.

    • 하나의 원소만 남을 때까지 위의 1~3 과정을 반복한다.

코드 및 결과

  • 로그 파일에 size 와 최솟값을 찾는 갯수에 대해서 작성하는 코드이다.

  • 해당 코드에 대한 결과로 그래프를 만들면 다음과 같다.

    • 시간복잡도 : O(N^2)

안정성 확인

  • 하지만 선택 정렬은 단순한 자료형이 아닌 클래스나, 구조체를 사용하는 경우 안정성이 깨진다..

Last updated