본문 바로가기
알고리즘

삽입정렬

by useSword 2024. 3. 11.
 

숫자를 '적절한 위치'에 삽입해보면 어떨까?

 

다른 정렬들은 무조건 위치를 바꾸는 방식이었다면 삽입 정렬은 필요할 떄만 위치를 변경합니다.
 
위의 글들을 보면 ‘적절한 위치’,’필요할 때’ 같은 글 때문에 제대로 이해가 안됩니다.
 
예시를 보면 이해에 도움이 됩니다.
 

 

<작동방식>

 
맨 처음부터 시작하여 각 원소를 차례대로 확인합니다.
 
현재 확인하는 원소가 이미 정렬된 리스트의 마지막 원소보다 크면, 삽입할 위치를 찾습니다.
 
삽입할 위치를 찾으면, 그 위치부터 마지막 원소까지 한 칸씩 뒤로 이동시킵니다.
 
빈 공간에 현재 확인하는 원소를 삽입합니다.
 

 

<예시>

 
1. “1”은 가장 앞에 있기 때문에 삽입할 공간이 없습니다.

 

2. “10”은 1과 비교해서 a,b 중 ‘적절한 위치’에 삽입하면 됩니다. (b에 삽입합니다.)
 
3. “5”는 1과 10을 비교하며 a,b,c 중 ‘적절한 위치’에 삽입하면 됩니다. (b에 삽입합니다.)
4. 4, “8”는 1과 5와 10을 비교하며 a,b,c,d 중 ‘적절한 위치’에 삽입하면 됩니다. (c에 삽입합니다.)
 
이를 계속 반복합니다.

 

'알고리즘' 카테고리의 다른 글

알고리즘 6일차  (0) 2024.03.13
Queue,DEQ,원형큐  (0) 2024.03.12
병합정렬  (0) 2024.03.11
버블정렬  (0) 2024.03.11
알고리즘 4일차  (1) 2024.03.08