2016-11-03 2 views
1

숙제 문제로 배열에서 최대 힙을 그려야합니다. 질문을 읽배열의 최대 힙 표현

(HEAPSIZE 6 임) A [] = {} 15,1085272030

다음 배열에 저장된 최대 힙을 뽑아주세요

그래서이 질문을 시도했을 때 나는 구식 방식으로 해 봤는데 heapSize가 배열 크기보다 작다는 것을 고려하지 않았습니다. 내가 가진

최대 힙했다 : {30,20,15,10,2,7,8,5}

내 질문은 :이 맞습니까? 또한 힙 크기가 배열 크기보다 작아 졌으므로이 값이 생성되는 최대 힙에 어떻게 영향을 줍니까? 6 번째 요소까지 최대 힙 배열을 표시해야합니까, 아니면 최대 힙을 수정해야합니까?

감사합니다.

답변

0

나는 운동을 오해 한 것 같습니다. 우리가 지정된 배열에서 크기 (6)의 최대 힙을 "끌어"말 그대로 운동을하고, 경우

, 우리는 나무 같이 얻을 :

 15 
    10 8 
    5 2 7 20 
30 

당신은 볼 수의 첫 6 개 요소 배열은 힙 순서입니다.

이것은 또한 힙 정렬의 중간 상태처럼 의심 같습니다 가장 큰 값 (30)는 다음에 마지막 요소이며, 두 번째로 큰 20 우리는 현재 최대 힙 요소를 교환 힙 정렬 알고리즘, 을 따르는 경우 15 마지막 요소 7, 등 배열을 값이 증가하는 순서로 정렬 된 결국 것입니다.

I하지 운동은 최대 힙 을 "인출"을 의미하지만 난 그게 의미 의심 무엇을 당신이 무슨 짓을 배열, heapify합니다.