Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 네트워크
- AbstractAggregateRoot
- CS
- 캐시
- Spring
- 백엔드개발자
- http
- java
- interceptor
- 백엔드개발
- 인프라
- Spring Boot
- 프론트엔드
- 보안
- 세션
- SnowFalke
- redis
- 성능최적화
- 백엔드기초
- db
- JPA
- spring event
- 데이터베이스
- 웹성능최적화
- 인증
- 웹개발
- DEVIEW2023
- 백엔드
- 클린코드
- devops
Archives
- Today
- Total
이것저것 개발기록
정렬 알고리즘 3종 세트 핵심 정리 본문
"데이터를 순서대로 나열하는 가장 기본적인 방법들!"
성능이 아주 좋지는 않지만, 알고리즘적 사고를 기르기 위해 반드시 거쳐 가야 할 기초 정렬 3가지를 정리합니다.
1. 기초 정렬 비교
- 버블 정렬 (Bubble Sort): 인접한 두 원소를 비교하며 큰 값을 뒤로 보냅니다. 구현은 쉽지만 아주 느립니다 ($O(N^2)$).
- 선택 정렬 (Selection Sort): 가장 작은 값을 찾아 맨 앞과 바꿉니다. 데이터 상태와 상관없이 일정한 시간이 걸립니다 ($O(N^2)$).
- 삽입 정렬 (Insertion Sort): 앞에서부터 정렬된 부분과 비교해 적절한 위치에 끼워 넣습니다. 정렬이 어느 정도 된 데이터에선 매우 빠릅니다.
💡 실무 노트
사실 실무에서 이 정렬들을 직접 구현할 일은 거의 없어요. 언어마다 내장된 sort() 함수들이 훨씬 빠르고 최적화되어 있거든요(보통 퀵 정렬이나 병합 정렬 기반).
팁: 하지만 정렬의 원리를 이해하는 것은 데이터의 흐름과 시간 복잡도를 계산하는 훈련이 됩니다. 코딩 테스트를 준비 중이라면 이 기초 정렬들의 장단점을 명확히 구분해 두세요.
'IT 이야기' 카테고리의 다른 글
| 교착 상태(Deadlock)의 발생 조건과 해결 방법 (0) | 2026.01.01 |
|---|---|
| 웹 캐시(Cache)와 CDN, 사용자 경험을 높이는 기술 (0) | 2025.12.31 |
| TDD(테스트 주도 개발)가 왜 필요한가요? (0) | 2025.12.30 |
| 쿠키와 세션, 로그인 유지의 비밀 (0) | 2025.12.30 |
| NullPointerException(NPE)을 방지하는 안전한 코딩 습관 (0) | 2025.12.29 |