간단한 배경 : 삽입이 발생할 때 힙 속성을 유지 관리하는 단계를 연구하고 있습니다.힙 속성 유지
질문 : 순서 또는
- 을
- 것은 나무가 완료되었음을 확인하고 수정 : 힙 속성을 유지하기 위해 사용할 수있는 두 가지 일반적인 전략이 여기에 흥미로운 문제입니다 순서가 올바른지 먼저 확인한 다음 완전성을 확인하십시오. 더 나은 (1 또는 2)입니다
?
참조 : John Edgar 박사가 작성한 http://www.cs.sfu.ca/CourseCentral/225/johnwill/cmpt225_09heaps.pdf (힙 삽입 - 슬라이드 16).
왜 위의 방법 중 하나가 더 나은지 분명히 알면 좋을 것입니다.
좋습니다. 프로그램이 순서를 유지하기 위해 필요한 반복 횟수와 관련이 있습니다. 따라서 완전성을 확인한 후 주문을 수정하는 것이 가장 좋습니다. 귀하의 명확한 해 주셔서 감사합니다, 그것은 지금 나에게 의미가 있습니다 :) – Kourosh
@Kourosh : 그리고 첫 번째 경우에는 "완전성을 확인"할 필요조차 없습니다. 새 항목을 적절한 위치에 배치하면 정의에 따라 완전 함을 보장합니다. –
네가 옳다면, 우리는 완전성을 검사하지 않습니다. 삽입이 배열의 크기에서 발생하고 나서 버블 업 (즉, 재 히프 업) 알고리즘이 호출되어 항목을 올바른 위치에 배치하여 순서를 고정합니다. 또한, 교수가 삽입 후 풍선을 사용하고 삭제 후 버블 다운을 권장하는 이유를 기억합니다 (즉, 적은 작업). – Kourosh