__JMY__
MY Devblog
__JMY__
전체 방문자
오늘
어제
  • 분류 전체보기 (52)
    • Dev (52)
      • Algorithm (6)
      • Linux (12)
      • Network (7)
      • Container (2)
      • Python (14)
      • Frontend (2)
      • Etc (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • hikaricp
  • SCP
  • Ingress
  • Docker
  • wget
  • Tuple
  • tcpdump
  • Python
  • react
  • certificate
  • frontend
  • network
  • hash
  • flexbox
  • springboot
  • Linux
  • Sorting
  • flask
  • Kubernetes
  • algorithm

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
__JMY__

MY Devblog

Dev/Algorithm

Selection Sort (선택정렬)

2020. 12. 22. 01:03

Selection Sort (선택정렬)

선택정렬은 정렬되지 않은 부분에서 가장 최소의 값을 찾아 시작부분에 배치하여 정렬하는 알고리즘입니다.

O(n^2)의 시간복잡도를 가지며 알고리즘이 단순하여 메모리가 제한적인 경우에 사용시 성능 상의 이점이 있습니다.

Selection Sort 정렬과정

  1. 주어진 배열에 최소 값을 찾습니다.
  2. 그 값을 맨 처음에 위치한 값과 교체합니다.
  3. 맨 처음 위치를 제외한 나머지 배열을 같은 방법으로 정렬합니다.

초기상태: (5 3 4 2 1 7 6)

Array 최솟값
(5 3 4 2 1 7 6) 1
(1 3 4 2 5 7 6) 2
(1 2 4 3 5 7 6) 3
(1 2 3 4 5 7 6) 4
(1 2 3 4 5 7 6) 5
(1 2 3 4 5 7 6) 6
(1 2 3 4 5 6 7)  

Selection Sort 코드 (Python)

def selection_sort(arr):
    length = len(arr)
    for i in range(length-1):
        min_idx = i
        for j in range(i+1, length):
            if arr[min_idx] > arr[j]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr
반응형

'Dev > Algorithm' 카테고리의 다른 글

Merge Sort (병합정렬)  (0) 2021.07.15
다익스트라(Dijkstra) 알고리즘  (0) 2021.04.13
Heap Sort (힙정렬)  (0) 2020.12.29
Insertion Sort (삽입정렬)  (0) 2020.12.23
Bubble Sort (버블정렬)  (0) 2020.12.22
    'Dev/Algorithm' 카테고리의 다른 글
    • 다익스트라(Dijkstra) 알고리즘
    • Heap Sort (힙정렬)
    • Insertion Sort (삽입정렬)
    • Bubble Sort (버블정렬)
    __JMY__
    __JMY__
    공부내용 정리 블로그

    티스토리툴바