삽입 정렬
정렬이 필요한 요소를 뽑아서 적당한 곳에 삽입
두 부분으로 나눈다, 정렬된 집합과 정렬되지 않은 집합으로 가정
- 부분집합 S: 정렬된 원소
- 부분집합 U: 정렬안된 원소
U의 원소를 하나씩 꺼내서 S의 마지막 원소부터 비교해서 위치를 찾아 삽입
S는 하나씩 늘어나고, U는 하나씩 줄어든다
예시
- S(정렬된 자료)= {44}
- U(정렬안된 녀석들) = {88, 62, 38, 19, 49}
먼저 U의 88을 S의 44와 비교후 88이 크니까 44뒤에 삽입
그럼 이렇게 된다
- S = {44, 88}
- U = {62, 38, 19, 49}
그다음 62를 88과 비교한다, 62가 작으니 다음으로
다음 44와 비교한다, 62가 크니 44뒤에 집어넣는다
- S = {44, 62, 88}
- U = {38, 19, 49}
이런식으로 마지막 49까지 진행한다
U집합이 공집합이 되어 종료한다.
최종값은 S로 모두 이동된다.
S = {19, 38, 44, 49, 62, 88}
'Computer Science > Algorithm :: 알고리즘' 카테고리의 다른 글
[알고리즘] 셸 정렬 - 나눠서 삽입정렬을 하다 (0) | 2021.03.18 |
---|---|
[알고리즘] 병합 정렬 - 분할해서, 정렬하며 합치다 (0) | 2021.03.18 |
[알고리즘] 버블 정렬 (0) | 2021.03.18 |
[알고리즘] 선택 정렬 방법 & 비교 횟수 (0) | 2021.03.17 |
[알고리즘] 점근적 분석 & 표기 #1주차 (0) | 2021.03.04 |