문제
수도 코드
function insertion_sort(arr[])
set result = 0
set size = arr.size
for i = 1 ... i < size
set j = i - 1
set key = arr[i]
while j >= 0 && arr[j] > key
arr[j + 1] = arr[j]
j--
result += 1
arr[j + 1] = key
return result
코드(Python)
n = int(input())
arr = list(map(int, input().split()))
arr.sort()
for elem in arr:
print(elem, end=" ")
코드 설명
먼저 key를 설정하여 해당 키 앞 부분까지는 정렬이 되어 있다고 가정한다.
key부터 마지막 인덱스까지, 앞부분 원소들과 비교하여 알맞은 위치로 이동한다.
최악의 경우 n-1개의 원소가 이동해야하므로 최대 O(N^2)의 시간복잡도를 가진다.
'PS' 카테고리의 다른 글
[코드트리] 문자에 따른 명령 2 (0) | 2024.09.06 |
---|---|
[코드트리] dx dy technique / 방향에 맞춰 이동 (0) | 2024.09.05 |
[코드트리 조별과제] 버블 정렬 구현 (0) | 2024.08.11 |
[코드트리] 격자로서의 2차원 배열: 동전이 있는 위치 (0) | 2024.07.14 |
[코드트리] 2차원 배열과 패턴: 격자 반대로 채우기 (0) | 2024.07.13 |