Quicksort 3 ทางเสถียรหรือไม่
Quicksort 3 ทางเสถียรหรือไม่

วีดีโอ: Quicksort 3 ทางเสถียรหรือไม่

วีดีโอ: Quicksort 3 ทางเสถียรหรือไม่
วีดีโอ: Quicksort3wayWithDuplicates 2024, เมษายน
Anonim

3 - ทาง Quicksort อัลกอริทึม

มันไม่ใช่ มั่นคง ! หลีกเลี่ยงการใช้ Quicksort ในกรณีที่ ความมั่นคง เป็นสิ่งจำเป็น มันใช้พื้นที่พิเศษ O(log(n)) ทำไม? เนื่องจากการเรียกซ้ำ

ในทำนองเดียวกัน QuickSort สามารถทำให้เสถียรได้หรือไม่

อัลกอริทึมการเรียงลำดับเรียกว่าเป็น มั่นคง ถ้ามันรักษาลำดับสัมพัทธ์ของระเบียนในกรณีของคีย์ที่เท่าเทียมกัน NS มั่นคง อัลกอริทึมสร้างเอาต์พุตแรก QuickSort เป็นอัลกอริธึมที่ไม่เสถียรเพราะเรา ทำ การสลับองค์ประกอบตามตำแหน่งของเดือย (โดยไม่พิจารณาตำแหน่งเดิม)

ความซับซ้อนของเวลาของ QuickSort คืออะไร? แม้ว่าความซับซ้อนของเวลากรณีที่เลวร้ายที่สุดของ QuickSort คือO(n2) ซึ่งมากกว่าอัลกอริธึมการเรียงลำดับอื่น ๆ มากมายเช่น ผสานการเรียงลำดับ และ Heap Sort QuickSort เป็นแนวทางปฏิบัติที่เร็วกว่า เนื่องจากลูปภายในสามารถนำไปใช้กับสถาปัตยกรรมส่วนใหญ่ได้อย่างมีประสิทธิภาพ และในข้อมูลจริงส่วนใหญ่

เมื่อพิจารณาถึงสิ่งนี้ อัลกอริธึมการเรียงลำดับใดที่เสถียร

NS อัลกอริทึมการเรียงลำดับ กล่าวกันว่าเป็น มั่นคง ถ้าวัตถุสองชิ้นที่มีคีย์เท่ากันปรากฏในลำดับเดียวกันใน sortedoutput ตามที่ปรากฏในอาร์เรย์อินพุตที่จะเรียงลำดับ บาง อัลกอริทึมการเรียงลำดับ เป็น มั่นคง โดยธรรมชาติเช่นการแทรก เรียงลำดับ , ผสาน เรียงลำดับ , บับเบิ้ล เรียงลำดับ ฯลฯ

เหตุใดการเรียงลำดับการเลือกจึงไม่เสถียร

ไม่ควรยากเกินไปที่จะปรับเปลี่ยน an การเรียงลำดับที่ไม่เสถียร อัลกอริทึมที่จะกลายเป็น มั่นคง . โดยทั่วไปแล้ว - คุณ ไม่ ถูกต้อง. การเรียงลำดับการเลือกไม่เสถียร . หากคุณใช้รายการที่เชื่อมโยงแทนอาร์เรย์ และแทรกองค์ประกอบในตำแหน่งที่ถูกต้องแทนการสลับ การเรียงลำดับการเลือก เป็น มั่นคง.