신입 개발자 기술면접 : C++ 정렬 총정리 (버블, 삽입, 선택, 퀵, 힙, 병합)
화이트보드나 종이나 비쥬얼 스튜디오에 작성하면서 설명할 수 있어야 합니다. 버블, 삽입, 선택 알고리즘은 모두 기본적인 정렬 알고리즘으로, 대규모 데이터셋에 대해서는 비효율적일 수 있습니다. 그러나 간단한 사용 사례나 작은 데이터셋에는 여전히 유용할 수 있습니다. 데이터가 이미 부분적으로 정렬되어 있거나, 데이터의 양이 적을 때는 삽입 정렬이 다른 두 알고리즘에 비해 더 빠를 수 있습니다. 합병 정렬은 모든 경우에서 O(NlogN) 의 시간 복잡도를 유지하지만, 추가 메모리 요구와 캐시 효율 문제로 인해 평균적인 성능이 퀵 정렬보다 느릴 수 있습니다. 합병 정렬과 퀵 정렬은 둘 다 효율적인 정렬 알고리즘이지만, 작동 방식에 몇 가지 중요한 차이점이 있습니다. 작동 원리: 합병 정렬은 배열을 반으로 나누고..
신입 개발자 기술면접 : C++ 05 (손코딩: Heapify, 최대힙, 이진탐색)
안녕하세요, 쫀냐미입니다. 손코딩은 처음이라서요 ... 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다 (_ _ ) 🗣️ Heapify 코드를 작성해보세요 #include using namespace std; void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int num = 9; int heap[9] = {7, 6, 5, 8, 3, 5, 9, 1, 6}; int main() { for (int i = 1; i < num; i++) { int c = i; do { int root = (c - 1) / 2; if (heap[root] < heap[c]) { swap(heap[root], heap[c]); } c = root; } while (c..