ฟังก์ชั่นที่มีศักยภาพไบนารีกองสกัดสูงสุด O (1)


10

ฉันต้องการความช่วยเหลือในการหาฟังก์ชั่นที่มีศักยภาพสำหรับ heap สูงสุดเพื่อให้แยก max เสร็จสมบูรณ์ในเวลาตัดจำหน่าย ฉันควรเพิ่มว่าฉันไม่มีความเข้าใจในวิธีการที่เป็นไปได้O(1)

ฉันรู้ว่าฟังก์ชั่นการแทรกควร "จ่าย" มากขึ้นเพื่อลดค่าใช้จ่ายในการสกัดและสิ่งนี้จะต้องเกี่ยวกับความสูงของกอง (ถ้าให้ความสูงของกองควร ส่วนแทรกเป็น2 บันทึก( n )หรือn k = 1 2 บันทึก( k ) )เข้าสู่ระบบ(n)2เข้าสู่ระบบ(n)Σk=1n2เข้าสู่ระบบ(k)

คำตอบ:


13

ลองทำสิ่งต่อไปนี้:

น้ำหนักขององค์ประกอบฉันในกองHคือความลึกของมันในต้นไม้ไบนารีที่สอดคล้องกัน ดังนั้นองค์ประกอบในรูตจึงมีศูนย์น้ำหนักลูกทั้งสองของมันจึงมีน้ำหนัก 1 และอื่น ๆ คุณกำหนดเป็นฟังก์ชันที่มีศักยภาพWผมผมH

Φ(H)=ΣผมH2Wผม.

ให้เราวิเคราะห์การดำเนินการฮีป สำหรับแทรกคุณเพิ่มใหม่ลึกองค์ประกอบเพิ่มที่มากที่สุดเข้าสู่ระบบ( n ) นี้จะเพิ่มศักยภาพโดย2 dและสามารถทำได้ในO ( 1 )เวลา จากนั้นคุณ "เพิ่มฟอง" องค์ประกอบกองใหม่เพื่อให้มั่นใจถึงกองสมบัติ นี้จะใช้เวลาO ( บันทึกn )เวลาและใบΦ ( H )ไม่เปลี่ยนแปลง ดังนั้นค่าใช้จ่ายสำหรับการแทรกคือO ( log ( n ) + Δ ( Φ (dเข้าสู่ระบบ(n)2dO(1)O(เข้าสู่ระบบn)Φ(H) )O(เข้าสู่ระบบ(n)+Δ(Φ(H)))=O(เข้าสู่ระบบn)

ตอนนี้พิจารณาextractMin คุณนำรูทออกและแทนที่ด้วยอิลิเมนต์สุดท้ายในฮีป นี่คือการลดศักยภาพโดยจึงทำให้คุณสามารถที่จะซ่อมแซมทรัพย์สินกองและดังนั้นค่าใช้จ่ายตัดจำหน่ายอยู่ในขณะนี้O ( 1 )2เข้าสู่ระบบ(n)O(1)

หากคุณมีคำถามทั่วไปสำหรับฟังก์ชันที่อาจเกิดขึ้นคุณควรตั้งคำถามนี้เป็นคำถามอื่น


ฉันแน่ใจว่าคุณถูกต้อง แต่ฉันไม่เข้าใจการแทรก ทำไมเป็นไม่เปลี่ยนแปลง? ขออภัยถ้าคำตอบนั้นชัดเจน แต่คุณช่วยขยายΔได้ไหม ฉันไม่เห็นว่าทำไมคุณจะมีจำนวนลบΔ(Φ(H)))Δ
อังเดร

หมายถึงความแตกต่างที่อาจเกิดขึ้น - ก่อนและหลังการแทรก มันเป็นในกรณีแทรกมากที่สุด 2 เข้าสู่ระบบ( n ) เมื่อคุณแลกเปลี่ยนสององค์ประกอบในฮีป (บับเบิลอัพหรือบับเบิลลง) น้ำหนักหนึ่งจะได้รับ +1 และอีกชิ้นจะได้รับการเปลี่ยนแปลง -1 ดังนั้นศักยภาพ (ผลรวมของน้ำหนักทั้งหมด) จะเท่าเดิม Δ(Φ(H))2เข้าสู่ระบบ(n)
A.Schulz

ซ่อมแซม O (1) ได้อย่างไร ฟังก์ชั่นที่มีศักยภาพในการซ่อมกองคืออะไร? คุณช่วยอธิบายได้ไหม
Sohaib

O(เข้าสู่ระบบn)O(1)

@ A.Schulz ดังนั้นในสาระสำคัญหมายความว่าเนื่องจากการดำเนินการแยกถูกทำ n จำนวนครั้งตั้งแต่แต่ละครั้งฟังก์ชันที่มีศักยภาพจะลดลง 2logn (อาจเพิ่มขึ้นหรือไม่เท่ากันเมื่อทำการซ่อมแซม) ความซับซ้อนโดยรวมของสิ่งนั้นจะคงที่ตลอดเวลาเนื่องจากในที่สุดจะไม่มีโหนดในต้นไม้ ฉันถูกไหม?
Sohaib
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.