INK study
article thumbnail
1. 전체 값 중 가장 작은 값을 찾음
2. 해당 값을 맨 첫번째에 배치함
3. 첫번째 값을 제외하고 가장 작은 값을 찾아 두번째에 배치함
4. 두번째, 세번째, ... n-1번째 값을 제외하고 가장 작은 값을 찾아 정해진 위치에 배치함.

선택정렬의 시간 복잡도

버블 정렬 : 중간에 정렬이 완료된 것이 확인되면 정지

선택 정렬 : 반드시 n-1,n-2,...,2,1 번의 비교 연산을 수행해야함. 약 n*(n-1)/2번의 연산을 필요로 함 = O(N^2)

 

선택정렬의 구현

python으로 구현해보겠다.


def selection_sort(arr):
    length = len(arr)
    for i in range(length-1):
        minindex = i
        for j in range(i+1,length):
            if arr[j] < arr[minindex]:
                minindex = j
            temp = arr[i]
            arr[i] = arr[minindex]
            arr[minindex] = temp
    return arr

arr = [10,2,3,5,9,1,4,6,8,7]
print(selection_sort(arr))

'Study > DataStructure' 카테고리의 다른 글

스레드 이진트리  (0) 2024.04.21
[백준/해시] 패션왕 신해빈 (Python)  (1) 2023.08.19
[자료구조] 이진탐색 (Binary Search)  (0) 2023.07.18
시간복잡도  (0) 2023.07.14
profile

INK study

@ongsimi_

읽어주셔서 감사합니다!