clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅅ
  • Swift
  • Q
  • uikit

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

CS/알고리즘

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

2022. 4. 15. 16:40

선택 정렬(Selection Sort)은 입력 배열 전체에서 최솟값을 선택하여 배열의 0번 원소와 자리를 바꾸고, 다음에는 0번 원소를 제외한 나머지 원소에서 최솟값을 선택하여  1번 원소와 자리를 바꾼다. 이런 방식으로 마지막에 2개의 원소중에서 작은 값을 선택하여 자리를 바꿈으로써 오름차순의 정렬을 마친다.

 

정렬 할 데이터: 15 9 6 27 24 9 8 13 10 1 5 

정렬된 데이터

1회전 결과: 1 9 6 27 24 9 8 13 10 15 5 

2회전 결과: 1 5 6 27 24 9 8 13 10 15 9 

3회전 결과: 1 5 6 27 24 9 8 13 10 15 9 

4회전 결과: 1 5 6 8 24 9 27 13 10 15 9 

5회전 결과: 1 5 6 8 9 24 27 13 10 15 9 

6회전 결과: 1 5 6 8 9 9 27 13 10 15 24 

7회전 결과: 1 5 6 8 9 9 10 13 27 15 24 

8회전 결과: 1 5 6 8 9 9 10 13 27 15 24 

9회전 결과: 1 5 6 8 9 9 10 13 15 27 24 

10회전 결과: 1 5 6 8 9 9 10 13 15 24 27

 

소스코드

void selectionsort(int a[], int n){
    for (int i = 0; i <= n - 2; i++) { //n - 1의 데이터는 자동으로 정렬됨.
        int min = i;
        for (int j = i + 1; j <= n - 1; j++) {  //i번 까진 정렬된 상태
            if (a[min] > a[j]) {
                min = j;
            }
        }
        swap(a, i, min);
    }
}

 

시간복잡도

O(N^2)

 

저작자표시 비영리 동일조건 (새창열림)
    'CS/알고리즘' 카테고리의 다른 글
    • 알고리즘 - 크루스칼 알고리즘(Kruskal Algorithm)
    • 알고리즘 - 퀵 정렬(Quick Sort)
    • 알고리즘 - 버블 정렬(Bubble Sort)
    • 알고리즘 - 알고리즘
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바