[알고리즘] 1. 정렬 기초(선택정렬, 삽입정렬, 버블정렬)

1.정렬

오름차순, 내림차순

1.1 정렬의 종류

  1. 선택정렬
  2. 삽입정렬
  3. 버블정렬

1.1.1 선택정렬 예시

배열을 순서대로 탐색하면서 최소값을 앞으로 이동시킴

0) 주어진 배열
2 5 6 7 1 3
1) 첫번째 정렬(1과 2 자리변경)
1 5 6 7 2 3
2) 두번째 정렬(배열2부터 최소값찾기/2와 5자리 변경)
1 2 6 7 5 3
3) 세번째 정렬(배열3부터 최소값찾기/3와 6자리 변경)
1 2 3 7 5 6
4) 네번째 정렬(배열4부터 최소값찾기/5와 7자리 변경)
1 2 3 5 7 6
5) 다섯번째 정렬(배열5부터 최소값찾기/6와 7자리 변경)
1 2 3 5 6 7
6) 선택정렬끝!!

1.2.1 삽입정렬

기준 배열과 나머지 배열 비교하여 작은것 것을 앞으로 바꿈

ex)

0) 주어진 배열
2 5 9 1 6
1) 첫번째 정렬

(2와 5비교 유지)

2 5 9 1 6

(2와 9비교 유지)

2 5 9 1 6

(2와 1비교 1과 2위치 변경)

1 5 9 2 6

(1과 6비교 유지)

1 5 9 2 6
2) 두번째 정렬(배열2부터 최소값찾기/2와 5자리 변경)

(5와 9비교 유지)

1 5 9 2 6

(5와 2비교 자리변경)

1 2 9 5 6

(2와 6비교 유지)

1 2 9 5 6
3) 세번째 정렬(배열3부터 최소값찾기/3와 6자리 변경)

(5와9비교 유지)

1 2 5 9 6

(5와 6비교 유지)

1 2 5 9 6
4) 네번째 정렬(배열3부터 최소값찾기/3와 6자리 변경)

(9와9비교 변경)

1 2 5 6 9
5) 삽입정렬끝!!

1.3.1 버블정렬

인접한 두 원소 비교 해서 큰 수를 뒤로 보냄

ex)

0) 주어진 배열
3 2 5 1 4
1) 첫번째 정렬

(3과 2비교 자리 바꿈)

2 3 5 1 4

(3과 5비교 유지)

2 3 5 1 4

(5와 1비교 자리 변경)

2 3 1 5 4

(5와 4비교 변경 > 5자리 확정)

2 3 1 4 5
2) 두번째 정렬

(2와 3비교 유지)

2 3 1 4 5

(3와 1비교 자리변경)

2 1 3 4 5

(3와 4비교 유지 > 4자리 확정)

2 1 3 4 5
3) 세번째 정렬

(2와1비교 변경)

1 2 3 4 5

(2와 3비교 유지 > 3자리 확정)

1 2 3 4 5
4) 네번째 정렬

(1와2비교 유지 > 2자리 확정)

1 2 3 4 5
5) 버블정렬끝!!

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×