푸르미르

[python]선택정렬 본문

PYTHON, ALGORITHM

[python]선택정렬

((•_•)) 2021. 2. 18. 19:20

선택정렬의 계산복잡도는 O(n^2)으로 입력크기가 커질수록 정렬하는데 시간이 매우 오래걸린다.

 

1
2
3
4
5
6
7
8
9
10
11
12
def sel_sort(a):
    n=len(a)
    for i in range(0,n-1): #0~n-2
        min_idx=i
        for j in range(i+1, n):
            if a[j]<a[min_idx]:
                min_idx=j
        a[i], a[min_idx]= a[min_idx], a[i]
 
d=[24513]
sel_sort(d)
print(d) #[1, 2, 3, 4, 5]
cs

 

내림차순으로 정렬하였는데 오름차순으로 정렬할 경우 6번째줄만 수정해주면 된다. 

if a[j]>a[min_idx]:

 

'PYTHON, ALGORITHM' 카테고리의 다른 글

[python]삽입정렬  (0) 2021.02.18
파이썬으로 Linked List 만들기  (3) 2021.02.03
입력 속도를 높이는 방법  (0) 2021.02.02
collections 모듈의 Counter 클래스  (2) 2021.01.03