Algorithm/basic(2)
-
이분 탐색 (Parametric Search)
이분 탐색 알고리즘 수열 또는 정렬된 배열에서 주어진 기준값에 근접한 값, 즉 정답을 구하기 위해 범위를 반으로 줄여나가며 정답을 구하는 알고리즘이다. 본 알고리즘에서는 범위를 지정하는 시작점(left, start, low, ...)과 끝점(right, end, high, ...) 을 관리하는 두 가지 변수가 있다. 중앙값 mid는 수열에서는 중앙값, 배열에서는 중앙에 위치(인덱스와 관련)한 값이 된다. 이제 기준값을 중앙값 또는 중앙값으로 도출된 값, 즉 기준값과 비교한다. 1. 중앙값이 기준값보다 작을 경우 시작점(left, start, low, ...)을 [중앙값 또는 중앙 인덱스 + 1] 값으로 바꾼다. 2. 중앙값이 기준값보다 클 경우 끝점(right, end, high, ...)을 [중앙값 또..
2020.07.22 -
[자료구조] MAXHEAP: 최대힙
Heap 간단설명 자료구조 Heap은 이진트리로, 삽입/삭제할 때 모두 O(logn)이 걸린다. Heap은 Priority Queue를 도입한 자료구조로, 여러 데이터가 주어질 때, 최댓값과 최솟값을 빠르게 찾고 싶을 때사용한다. Binary Search Tree와 다르게 Heap은 중복값을 허용하는 것을 기억해두자. Heap은 기본적으로 배열로 나타낼 수 있다. priority queue 관련된 라이브러리를 활용해서 나타낼 수 있다. 배열로 표현할 때 인덱스 번호로 노드를 비교할 것이기 때문에 heap으로 구현한 배열에서 인덱스 0은 안 쓴다! 부모노드 INDEX = 자식노드 INDEX / 2 왼쪽자식노드 INDEX = 부모노드 INDEX * 2 오른쪽자식노드 INDEX = 부모노드 INDEX * 2 ..
2020.06.02