Python/알고리즘 및 자료구조
선택정렬
박남수
2021. 3. 5. 17:35
선택정렬
선택 정렬이란 가장 작은(혹은 큰) 원소를 선택하여 그 값을 맨앞에 위치한 값과 바꿔주는 정렬이다.
시간복잡도:O(n2)
def select_sort(li):
for i in range(0,len(li),1): # 0 부터 배열의 길이 -1 만큼 반복
min = i #i 를 min 에 저장(최소값의 인덱스)
for j in range(i,len(li),1):#i 부터 배열의길이 -1 만큼 반복
if li[min] > li[j]: #인덱스 min 자리보다 j의 자리가 더 클 경우
min = j # min 을 j 로 변경
temp = li[i] #비교 후 i 인덱스 의 값을
li[i] = li[min] # min 인덱스 의 값과 변경
li[min] = temp
print(li)
return li
select_list = select_sort([1,5,10,2,3,100,50,30,23])
print("최종결과")
print(select_list)
실행결과
[1, 5, 10, 2, 3, 100, 50, 30, 23]
[1, 2, 10, 5, 3, 100, 50, 30, 23]
[1, 2, 3, 5, 10, 100, 50, 30, 23]
[1, 2, 3, 5, 10, 100, 50, 30, 23]
[1, 2, 3, 5, 10, 100, 50, 30, 23]
[1, 2, 3, 5, 10, 23, 50, 30, 100]
[1, 2, 3, 5, 10, 23, 30, 50, 100]
[1, 2, 3, 5, 10, 23, 30, 50, 100]
[1, 2, 3, 5, 10, 23, 30, 50, 100]
최종결과
[1, 2, 3, 5, 10, 23, 30, 50, 100]