Replies: 1 comment 1 reply
-
직접 구현해보면서 익혀봅시다 :) |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
1. 버블 정렬 (Bubble Sort)
예시 배열: [5, 3, 8, 4, 2]
실행 과정:
첫 번째 패스:
가장 큰 수 8이 맨 끝으로 이동
두 번째 패스:
두 번째로 큰 수 5가 맨 끝에서 두 번째로 이동
이런 식으로 계속 진행되어 최종적으로 [2,3,4,5,8]이 됩니다.
예시 코드
2. 선택 정렬 (Selection Sort)
예시 배열: [5, 3, 8, 4, 2]
실행 과정:
첫 번째 패스:
두 번째 패스:
세 번째 패스:
이런 식으로 계속 진행됩니다.
예시 코드
3. 퀵 정렬 (Quick Sort)
예시 배열: [5, 3, 8, 4, 2]
피벗으로 마지막 요소 2를 선택한다고 가정
실행 과정:
첫 번째 분할:
오른쪽 부분 배열 [5,3,8,4] 정렬:
[5,8] 정렬:
최종적으로 모든 부분이 합쳐져 [2,3,4,5,8]이 됩니다.
예시 코드
4. 병합 정렬 (Merge Sort)
예시 배열: [5, 3, 8, 4, 2]
실행 과정:
분할 단계:
[5,3,8,4,2]
→ [5,3] [8,4,2]
→ [5] [3] [8] [4,2]
→ [5] [3] [8] [4] [2]
병합 단계:
각 단계에서:
이러한 과정을 통해 정렬이 이루어집니다.
예시 코드
5. 삽입정렬 (insertion sort)
예시 배열: [5, 3, 8, 4, 2]
실행 과정:
첫 번째 패스 (두 번째 요소부터 시작):
현재 값: 3
비교 배열: [5] | [3,8,4,2]
5와 3을 비교 → 3이 더 작음
3을 5 앞으로 삽입
결과: [3,5,8,4,2]
두 번째 패스:
현재 값: 8
비교 배열: [3,5] | [8,4,2]
5와 8을 비교 → 8이 더 큼
이미 올바른 위치이므로 그대로 둠
결과: [3,5,8,4,2]
세 번째 패스:
현재 값: 4
비교 배열: [3,5,8] | [4,2]
8과 4를 비교 → 4가 더 작음
5와 4를 비교 → 4가 더 작음
3과 4를 비교 → 4가 더 큼
3과 5 사이에 4를 삽입
결과: [3,4,5,8,2]
네 번째 패스:
현재 값: 2
비교 배열: [3,4,5,8] | [2]
8과 2를 비교 → 2가 더 작음
5와 2를 비교 → 2가 더 작음
4와 2를 비교 → 2가 더 작음
3과 2를 비교 → 2가 더 작음
맨 앞에 2를 삽입
최종 결과: [2,3,4,5,8]
예시 코드
정렬 안정성
안정 정렬이란: 동일한 값을 가진 요소들의 원래 순서가 정렬 후에도 유지되는 것을 의미합니다.
예를 들어 [3A, 3B, 1] → [1, 3A, 3B] 이렇게 정렬되면 안정 정렬입니다.
안정 정렬 ✅
이유: 인접한 두 요소를 비교할 때 같은 값이면 교환하지 않기 때문에 원래 순서가 유지됩니다.
불안정 정렬 ❌
이유: 가장 작은 값을 찾아 멀리 있는 위치와 교환할 때 동일한 값의 상대적 위치가 바뀔 수 있습니다.
예시: [4, 2A, 3, 2B, 1] → [1, 2B, 3, 2A, 4]
최소값을 찾아 맨 앞으로 보내는 과정에서 2A와 2B의 순서가 바뀔 수 있습니다.
불안정 정렬 ❌
이유: 피벗을 기준으로 요소들을 재배치하는 과정에서 동일한 값의 상대적 위치가 바뀔 수 있습니다.
예시: 피벗이 3일 때 [3A, 2, 3B, 1] → [2, 1, 3B, 3A]
분할 과정에서 3A와 3B의 순서가 바뀔 수 있습니다.
안정 정렬 ✅
이유: 병합 과정에서 같은 값을 비교할 때 왼쪽 배열의 값을 먼저 선택하도록 구현하면 안정성이 보장됩니다.
안정 정렬 ✅
이유: 같은 값을 만났을 때 그 뒤에 삽입하므로 원래 순서가 유지됩니다.
Beta Was this translation helpful? Give feedback.
All reactions