일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spring
- aws
- GitHub
- Security
- jquery
- 에러
- kotlin
- Vue
- db
- 넥사크로
- Git
- 스프링
- mybatis
- 코틀린
- JavaScript
- 함수
- 자바
- JPA
- Eclipse
- 방법
- error
- 알고리즘
- 프로그래머스
- Java
- IntelliJ
- 생성
- oracle
- 오라클
- 쿼리
- 시큐리티
- Today
- Total
송민준의 개발노트
정렬(Sort)에서 삽입 정렬(Insertion Sort)와 버블 정렬(Bubble Sort) 본문
● 정렬이란?
- 어떠한 데이터를 키 값에 따라 오름차순 혹은 내림차순으로 재배치를 하는 것이며
오름차순은 키 값이 작은 것에서 큰 것으로 오른다!라고 생각하면 이해가 쉽다.
반대로 내림차순은 큰 것에서 작은 것으로 내린다!라고 생각하자. (정렬방향은 위에서 아래로)
● 정렬 방식에는 2가지가 있다.
1. 내부 정렬
- Insertion, Shell, Selection, Bubble, Quick, Heap, 2-Way Merge, Radix, Bucket
2. 외부 정렬
- Balanced merge sort, Cascade merge sort, Polyphase merge sort, Oscillation merge sort
여기서 Insertion과 Bubble 정렬에 대해 비교하고자 한다.
- 삽입 정렬(Insertion Sort)은 임의로 선택된 키 값을 앞에 키값과 비교하여 위치를 찾아가는 방식이다.
최 초 |
4 |
3 |
6 |
5 |
1 |
2 |
1 회 |
3 |
4 |
6 |
5 |
1 |
2 |
2 회 |
3 |
4 |
6 |
5 |
1 |
2 |
3 회 |
3 |
4 |
5 |
6 |
1 |
2 |
초록색 부분이 비교하는 키값들이고 빨간색이 위치를 찾아간 것이다. 지금은 키 값이 앞으로 한 칸만 변경되었지만 두 칸도 가능하다.
- 버블 정렬(Bubble Sort)은 인접키와 비교 후 교환하여 정렬한다. 단계별로 수행한다.
최 초 |
4 |
8 |
5 |
9 |
3 |
10 |
1 회 |
4 |
8 |
5 |
9 |
3 |
10 |
2 회 |
4 |
5 |
8 |
9 |
3 |
10 |
3 회 |
4 |
5 |
8 |
9 |
3 |
10 |
위와 마찬가지로 초록색 부분이 비교하는 키값이고 빨간색이 위치를 찾아간 것이다. 주의할 점은 좌우로 한 칸만 변경된다는 것이다.
예를 들어
최 초 |
7 |
2 |
6 |
4 |
10 |
1 |
1 회 |
2 |
7 |
6 |
4 |
10 |
1 |
2 회 |
2 |
6 |
7 |
4 |
10 |
1 |
3 회 |
2 |
6 |
4 |
7 |
10 |
1 |
3 - 1 회 |
2 |
4 |
6 |
7 |
10 |
1 |
3회는 버블 정렬이고 3-1회는 삽입 정렬이다. 3-1회를 보면 4가 앞으로 두칸 위치를 이동한 것이 보인다. 이러한 부분이 체크를 못할 가
능성이 있으니 확인이 필요하다.
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 (0) | 2019.11.22 |
---|---|
정보처리기사 필기 결과(19-3회차) (0) | 2019.10.24 |
결합도(Coupling)와 응집도(Cohesion) 비교정리(정보처리기사) (0) | 2019.10.18 |