[Python]알고리즘/이코테 2021
[정렬 알고리즘] 예제2 - 삽입 정렬(Insertion Sort)(164p)
HSY_mumu
2022. 4. 17. 20:26
728x90
[이코테] 예제2 - 삽입 정렬(Insertion Sort)(164p)
풀이 시간:
1) 문제 해결 아이디어
<삽입 정렬>
정렬된 데이터 리스트에서 적절한 위치를 찾은 뒤에 그 위치에 삽입
(첫번째 데이터는 정렬되어있다고 가정, 2번째 데이터부터 정렬 시작)
평균 시간 복잡도: O(n**2)
공간 복잡도: O(n)
2) 소스코드
# 선택 정렬(Insertion Sort)
array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]
# 오름차순 정렬
# 1번 인덱스부터 시작
for i in range(1, len(array)):
# 0 ~ i 인덱스 정렬
for j in range(i, 0, -1):
# 현재값이 왼쪽값보다 크면 탈출
if array[j] > array[j - 1]: break
# 현재값이 왼쪽값보다 작다면 swap
else:
# swap (현재값 & 왼쪽값 서로 바꾸기)
array[j], array[j - 1] = array[j - 1], array[j]
print(array)
728x90