728x90
정렬되어 있는 자료 배열과 비교해서, 정렬 위치를 찾는다.
[5, 10, 2, 1, 0] -> 리스트 앞의 5, 10이 정렬되어있으므로 2를 5, 10 앞으로 가져온다
[2, 5, 10, 1, 0] -> 2, 5, 10이 정렬되어 있으므로 1을 2앞으로 가져온다
[1, 2, 5, 10, 0] -> 1, 2, 5, 10이 정렬되어 있으므로 0을 1앞으로 가져온다
[0, 1, 2, 5, 10]
ascending
nums = [5, 10, 2, 1, 0]
for i in range(1, len(nums)):
j = i - 1
val = nums[i]
while nums[j] > val and j >= 0:
nums[j+1] = nums[j]
j -= 1
nums[j+1] = val
print(f'nums : {nums}')
decending
for문의 부등호 방향만 바꿔주면 됨
nums = [5, 10, 2, 1, 0]
for i in range(1, len(nums)):
j = i - 1
val = nums[i]
while nums[j] < val and j >= 0:
nums[j+1] = nums[j]
j -= 1
nums[j+1] = val
print(f'nums : {nums}')
728x90
'코딩 > 알고리즘' 카테고리의 다른 글
[비교] 최댓값, 최솟값 알고리즘 (0) | 2023.02.06 |
---|---|
[정렬] 선택정렬 알고리즘 (0) | 2023.01.31 |
[정렬] 버블정렬 알고리즘 (0) | 2023.01.27 |
[순위] 순위 알고리즘 (0) | 2023.01.26 |
[검색] 이진검색 알고리즘 (0) | 2023.01.20 |