오름 차순 기준으로 수행
-
첫 번째 데이터와 두 번째 데이터를 비교
첫번째가 더 작기 때문에 바꿀 필요가 없다
3 |
5 |
6 |
4 |
1 |
|
-
두번째와 세번 째 비교
바꿀 필요 없음
3 |
5 |
6 |
4 |
1 |
|
-
세 번째와 네 번째 데이터 비교
바꿀게 생겼음
3 |
5 |
6 |
4 |
1 |
|
- 숫자4를 임시 기억장소에 기억해 두고 앞에 있던 수를 4가 있던 자리에 복사
3 |
5 |
6 |
6 |
1 |
4 |
-
그 앞에 있는 5와 4를 비교
역시 바꿔야 하기 때문에 5를 뒤쪽으로 복사
3 |
5 |
5 |
6 |
1 |
4 |
- 마찬가지고 3과 비교해보면 바꿀 필요 없으므로 5가 있던 자리로 4를 복사
3 |
4 |
5 |
6 |
1 |
4 |
-
이제 6과 1을 비교
바꿔야 됨, 임시 기억장소에 1을 복사하고 1이 있던 자리로 6을 복사
3 |
4 |
5 |
6 |
6 |
1 |
- 마찬가지로 5도 1보다 크므로 뒤쪽에 복사
3 |
4 |
5 |
5 |
6 |
1 |
- 4도 1과 비교해보고 크니까 뒤로 복사
3 |
4 |
4 |
5 |
6 |
1 |
- 3도 크니까 뒤로 복사
3 |
3 |
5 |
5 |
6 |
1 |
- 더이상 비교할 숫자가 없기때문에 첫번째 넣어줌
1 |
4 |
5 |
5 |
6 |
1 |
-
삽입 정렬 끝
총 11번의 비교를 통해 삽입정렬이 완료되었음
정리
임시기억장소를 만들어 두어 교체할 숫자가 있을 경우 그곳에 데이터를 복사한 뒤 한칸씩 뒤로 밀며 그 앞에 데이터와 비교
지금 까지 비교했던 숫자 중 맨 마지막 숫자와 다음 비교할 숫자를 비교하여 교체 할 필요가 있으면 그 앞에 숫자들도 차례대로 검사하는 방식, 더 이상 비교할 필요가 없으면 다음 단계를 진행하면 똑같은 과정을 거친다
숫자가 5,4,3,2,1 처럼 완전 거꾸로 된 데이터를 사용한다면 모든 숫자를 다 비교하고 바꿔줘야 한다
반응형