ความซับซ้อนของอัลกอริธึมการเรียงลำดับฮีปคืออะไร?
ความซับซ้อนของอัลกอริธึมการเรียงลำดับฮีปคืออะไร?

วีดีโอ: ความซับซ้อนของอัลกอริธึมการเรียงลำดับฮีปคืออะไร?

วีดีโอ: ความซับซ้อนของอัลกอริธึมการเรียงลำดับฮีปคืออะไร?
วีดีโอ: Heap Sort + Step by Step Walkthrough + Time and Space Complexity - CS Lecture Ep 6.1 2024, ธันวาคม
Anonim

การเรียงลำดับฮีปเป็นอัลกอริทึมแบบแทนที่ ความซับซ้อนของเวลา : ความซับซ้อนของเวลา ของ heapify คือ O(Logn) ความซับซ้อนของเวลา ของ createAndBuildHeap() คือ O(n) และโดยรวม ความซับซ้อนของเวลา ของ Heap Sort คือ O(nLogn)

สำหรับสิ่งนี้ อัลกอริธึมของการเรียงลำดับฮีปคืออะไร?

อัลกอริธึมการเรียงลำดับฮีป แบ่งออกเป็นสองส่วนพื้นฐาน: การสร้าง a กอง ของรายการ/อาร์เรย์ที่ไม่ได้เรียงลำดับ แล้ว จัดเรียง อาร์เรย์ถูกสร้างขึ้นโดยการลบองค์ประกอบที่ใหญ่ที่สุด / เล็กที่สุดออกจาก.ซ้ำ ๆ กอง และแทรกลงในอาร์เรย์ NS กอง ถูกสร้างขึ้นใหม่หลังจากการลบแต่ละครั้ง

ในทำนองเดียวกัน เวลาทำงานปกติของอัลกอริธึมการเรียงลำดับแบบฮีปคือเท่าใด อย่างไรก็ตาม Quicksort มีกรณีที่แย่ที่สุด เวลาทำงาน ของ O (n 2) O(n^2) O(n2) และความซับซ้อนของช่องว่างที่แย่ที่สุดของ O (log ? n O(log n O(logn) ดังนั้นถ้ามันสำคัญมากที่จะมีกรณีที่รวดเร็วที่สุด เวลาทำงาน และการใช้พื้นที่อย่างมีประสิทธิภาพ heapsort เป็นตัวเลือกที่ดีที่สุด

ในทำนองเดียวกัน มีคนถามว่า ความซับซ้อนของฟังก์ชัน Heapify คืออะไร?

แนวคิดหลักคือใน build_heap อัลกอริทึม ที่เกิดขึ้นจริง heapify ราคาไม่ใช่ O(log n) สำหรับองค์ประกอบทั้งหมดเมื่อ heapify เรียกว่า เวลาทำงานขึ้นอยู่กับว่าองค์ประกอบ faran อาจเคลื่อนลงมาใน tree ก่อนที่กระบวนการจะสิ้นสุดลง กล่าวอีกนัยหนึ่ง มันขึ้นอยู่กับความสูงขององค์ประกอบในฮีป

อัลกอริธึมการเรียงลำดับใดมีความซับซ้อนเชิงซีมโทติกที่ดีที่สุด

สำหรับ ดีที่สุด กรณีแทรก เรียงลำดับ และกอง เรียงลำดับดีที่สุด หนึ่งเดียวของพวกเขา ดีที่สุด กรณีรันไทม์ ความซับซ้อน คือ O(n) สำหรับกรณีทั่วไป asymptotic ที่ดีที่สุด เวลาทำงาน ความซับซ้อน คือ O(nlogn) ซึ่งได้รับจาก Merge เรียงลำดับ , กอง เรียงลำดับ , เร็ว เรียงลำดับ . สำหรับกรณีที่เลวร้ายที่สุด ดีที่สุด เวลาทำงาน ความซับซ้อน คือ O(nlogn) ซึ่งได้รับจาก Merge เรียงลำดับ , กอง เรียงลำดับ.