태그: 정렬
8편
-
C 동적 메모리 심화 — malloc 내부·정렬·단편화·커스텀 할당자·프로덕션 패턴
glibc ptmalloc과 jemalloc이 malloc/free를 어떤 자료구조로 구현하는지 살펴보고, aligned_alloc과 max_align_t 정렬 규칙, 내부·외부 단편화가 악화되는 패턴, 범프 할당자와 고정 블록 풀 설계를 설명합니다.
-
C 언어 시리즈 #01 — 기초와 실행 모델: 객체 표현·정렬·번역 단위
C 언어를 처음 배우는 사람을 위한 실행 모델 입문. segfault를 처음 만났을 때 무슨 일이 벌어지는지, .c 파일이 전처리·컴파일·어셈블·링크를 거쳐 실행 파일이 되는 과정, 그리고 번역 단위라는 개념을 캐주얼한 톤으로 풀어씁니다.
-
이진 탐색: 경계 조건, lower/upper bound, 결정 문제로 바꾸는 파라메트릭 서치
정렬된 배열에서 절반씩 범위를 줄이는 이진 탐색을 반복·재귀로 구현하고, lower bound와 upper bound로 원소 개수를 세는 법, 나무 자르기처럼 답을 직접 찾는 대신 결정 문제로 바꿔 푸는 파라메트릭 서치를 설명합니다.
-
기초 정렬 알고리즘: 버블·선택·삽입 정렬의 동작과 O(n²)인 이유
버블·선택·삽입 정렬을 Python과 C++로 구현하며 세 알고리즘이 모두 O(n²)인 이유와 안정성 차이를 비교하고, 거의 정렬된 데이터나 작은 배열에서 삽입 정렬이 지금도 실제로 쓰이는 이유를 설명합니다.
-
고급 정렬: 퀵·병합·힙 정렬이 O(n log n)인 이유와 선택 기준
퀵·병합·힙 정렬이 O(n log n)이 되는 분할 방식을 Python과 C++ 구현으로 설명하고, 퀵 정렬 최악 O(n²)을 피하는 피벗 선택, 병합 정렬의 추가 메모리, 안정성 요구에 따라 알고리즘을 고르는 기준을 비교합니다.
-
정렬 문제 풀이: 커스텀 비교 함수, 안정 정렬, 코딩 테스트 정렬 패턴
코딩 테스트 정렬 문제 풀이, 커스텀 key, 퀵·머지·힙·카운팅 정렬의 내부 동작과 프로덕션 정렬 패턴까지 정리합니다. 코딩 테스트에서 정렬은 문제 해결의 첫 단계인 경우가 많습니다. 후보를 점수·시간 순으로 줄이거나, 그리디·이진 탐색 전에 순서를 맞출 때 sort와 key만으로 조건을 표현하는 경우가 많습니다.
-
C++ 정렬 알고리즘 구현과 비교: std::sort의 pdqsort, stable_sort, 병렬 정렬, 기수 정렬
C++ 정렬 알고리즘 정리. 기본·고급 정렬 구현, std::sort 내부의 pdqsort와 stable_sort의 차이, std::execution::par 병렬 정렬, ska_sort 같은 기수 기반 정렬, 자주 나는 에러와 성능 팁을 다룹니다.
-
STL 정렬과 검색 함께 쓰기: sort·stable_sort·병렬 정렬과 lower_bound·upper_bound
C++ STL 정렬·검색 정리. std::sort(introsort 계열), stable_sort, std::execution::par 병렬 정렬, lower_bound·upper_bound 이진 탐색, 자주 나는 에러와 성능 팁을 예제로 다룹니다.