반응형
SMALL
삽입 정렬 (Insertion Sort)
정의: 이미 정렬된 부분에 새로운 값을 순서에 맞게 삽입하여 정렬하는 방식.
시간 복잡도: 평균 및 최악 모두 O(n²).
예시: 8, 5, 6, 2, 4
- 초기 상태: 8, 5, 6, 2, 4
- 1회전: 8, 5 → 5, 8
- 두 번째 값 5를 첫 번째 값 8과 비교하여 5가 더 작으므로 교체.
- 2회전: 5, 8, 6 → 5, 6, 8
- 세 번째 값 6을 두 번째 값 8과 비교하여 6이 더 작으므로 교체.
- 3회전: 5, 6, 8, 2 → 2, 5, 6, 8
- 네 번째 값 2를 첫 번째부터 비교하여 맨 앞에 삽입.
- 4회전: 2, 5, 6, 8, 4 → 2, 4, 5, 6, 8
- 다섯 번째 값 4를 두 번째 값 5와 비교하여 5 앞에 삽입.
선택 정렬 (Selection Sort)
정의: 배열에서 가장 작은 값을 찾아 첫 번째 자리에 놓고, 그다음 작은 값을 찾아 두 번째 자리에 놓는 방식을 반복하는 정렬 방식.
시간 복잡도: 평균 및 최악 모두 O(n²).
예시: 8, 5, 6, 2, 4
- 초기 상태: 8, 5, 6, 2, 4
- 1회전: 8, 5, 6, 2, 4 → 5, 8, 6, 2, 4 → 5, 8, 6, 2, 4 → 2, 8, 6, 5, 4
- 가장 작은 값 2를 찾아 첫 번째 값과 교체.
- 2회전: 2, 8, 6, 5, 4 → 2, 6, 8, 5, 4 → 2, 5, 8, 6, 4 → 2, 4, 8, 6, 5
- 두 번째 값부터 가장 작은 값 4를 찾아 두 번째 값과 교체.
- 3회전: 2, 4, 8, 6, 5 → 2, 4, 6, 8, 5 → 2, 4, 5, 8, 6
- 세 번째 값부터 가장 작은 값 5를 찾아 교체.
- 4회전: 2, 4, 5, 8, 6 → 2, 4, 5, 6, 8
- 네 번째 값부터 가장 작은 값 6을 찾아 교체.
버블 정렬 (Bubble Sort)
정의: 인접한 두 값의 크기를 비교하여 자리 교환을 통해 큰 값을 뒤로 보내는 방식으로 정렬.
시간 복잡도: 평균 및 최악 모두 O(n²).
예시: 8, 5, 6, 2, 4
- 초기 상태: 8, 5, 6, 2, 4
- 1회전: 8, 5 → 5, 8 → 5, 6, 8 → 5, 6, 2, 8 → 5, 6, 2, 4, 8
- 인접한 값을 비교하여 더 큰 값 8을 뒤로 이동.
- 2회전: 5, 6, 2, 4, 8 → 5, 2, 6, 4, 8 → 5, 2, 4, 6, 8
- 두 번째로 큰 값 6을 뒤로 이동.
- 3회전: 5, 2, 4, 6, 8 → 2, 5, 4, 6, 8 → 2, 4, 5, 6, 8
- 세 번째로 큰 값 5를 뒤로 이동.
- 4회전: 2, 4, 5, 6, 8 (정렬 완료)
퀵 정렬 (Quick Sort)
정의: 피벗 값을 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽으로 나누어 정렬하는 방식.
시간 복잡도: 평균 O(nlogn), 최악 O(n²).
예시: 8, 5, 6, 2, 4 (피벗 값: 4)
- 초기 상태: 8, 5, 6, 2, 4
- 1단계 분할: [8, 5, 6, 2, 4] → [2], [4, 5, 6, 8]
- 피벗 값 4를 기준으로 2는 왼쪽, 나머지는 오른쪽에 배치.
- 2단계 분할: [2], [4, 5, 6, 8] → [2], [4], [5, 6, 8]
- 피벗 값 5를 기준으로 다시 분할.
- 최종 정렬: [2, 4, 5, 6, 8] (정렬 완료)
반응형
LIST
'정보처리기사 > 데이터 입출력 구현' 카테고리의 다른 글
트리 순회 방식과 수식 표기법 변환 (0) | 2024.10.15 |
---|---|
자료 구조 정리 (0) | 2024.10.15 |
스토리지 연결 방식의 이해 DAS,NAS,SAN (0) | 2024.10.14 |
접근 통제 방식 (0) | 2024.10.14 |
시스템 카탈로그 및 복구 방법 (0) | 2024.10.14 |