[CS50] 4.8 병합 정렬
병합 정렬이란 전화번호부를 반씩 나누어 간다는 것과 비슷하다. 원소가 한 개가 될 때까지 계속 반으로 나누다가 다시 합쳐나가며 정렬하는 방식이다. ①최소 단위로 나눈 다음, ②나눈 곳 기준 왼쪽을 정렬한다. ③나눈 곳 기준 오른쪽을 정렬한다. ④위에서 정렬한 것을 병합한 후 오름차순으로 정렬한다. 이 과정을 계속 반복한다. 예시) 7 | 4 | 5 | 2 | 6 | 3 | 8 | 1 → 가장 작은 부분(숫자 1개)으로 나눈다. 4 7 | 2 5 | 3 6 | 1 8 → 숫자 1개씩을 정렬하여 병합한다. 2 4 5 7 | 1 3 6 8 → 숫자 2개씩을 정렬하여 병합한다. 1 2 3 4 5 6 7 8 → 마지막으로 숫자 4개씩을 정렬하여 병합한다. 알고리즘에서 무언가를 계속 절반으로 나눈다면 이것은 로그 ..
부스트코스/4. 알고리즘
2021. 1. 30. 17:44
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 동기처리
- CSSOM
- RenderTree
- 이벤트위임
- HTML
- valgrind
- Big Ω
- intersectionObserver
- Typography
- 함수
- malloc
- 비구조화할당
- overflow
- float
- Dom
- vanillajs
- sr-only
- pseudo
- 선택자
- 선형검색
- form
- CSS
- 연결리스트
- 문자열
- 구조분해할당
- 구조체
- 폼
- 포인터
- 프로젝트
- capturing
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함