값에 따라 해시 맵을 정렬하려고한다고 가정합니다. 이를 위해 비교 자로 priorityQueue를 구현합니다. 결과적으로 결과 pq는 인덱스 0에서 끝까지 최대 값에서 최소값 순으로 정렬됩니다. PriorityQueue<Map.Entry<Integer, Integer>> pq = new PriorityQueue<Map.Entry<Integer, Intege
popMin 및 popMax 메서드를 모두 포함하는 대기열 클래스를 구현하고 있습니다. 지금까지 두 개의 우선 순위 대기열을 사용하여 작업을 수행했습니다. 그러나 제거가 log (n) 시간 일지라도 다른 대기열에서도 선형을 제거해야합니다. 바이너리 힙을 사용하여 이중 종료 우선 순위 큐를 구현할 수 있다는 것을 알고 있지만, 빌드하는 데 선형 시간이 걸린다
dp [n]이 n 개의 요소를 포함하는 최대 힙을 형성하는 방법의 수를 저장하면, 우리는 다음을 얻습니다. 좌측 하위 트리 N1 중 dp[n] = nCr(n - 1, n1) * dp[n1] * dp[n2];
즉 선택 N1 소자. 왼쪽 하위 트리의 요소는 dp [n1] 방식으로 최대 힙을 형성 할 수 있습니다. 오른쪽 하위 트리의 요소는 dp [n2] 방
위키 피 디아에 따르면, 이것은 최소 힙 : https://en.wikipedia.org/wiki/Min-max_heap입니다. O (n)에서 min-max 힙을 만드는 방법이 있는지 궁금합니다. 나는 당신이 min heap과 max heap 모두를 가지고 이것을 할 수 있다는 것을 알고 있지만, 나는 이것이 어떤 접근법이 될지 모르겠다. 요소를 삽입하는