Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การเปรียบเทียบวิธีการจัดเรียงในโครงสร้างข้อมูล


ที่นี่เราจะเห็นวิธีการจัดเรียงบางอย่าง มีเทคนิคการจัดเรียงมากกว่า 200 แบบ เราจะเห็นบางส่วนของพวกเขา เทคนิคการจัดเรียงบางอย่างเป็นการจัดเรียงแบบเปรียบเทียบ บางส่วนเป็นเทคนิคการจัดเรียงแบบไม่ใช้การเปรียบเทียบ

เทคนิคการจัดเรียงตามการเปรียบเทียบ ได้แก่ การเรียงลำดับแบบฟอง การเรียงลำดับการเลือก การเรียงลำดับการแทรก การเรียงลำดับแบบรวม การเรียงลำดับแบบด่วน การเรียงลำดับแบบฮีป เป็นต้น เทคนิคเหล่านี้ถือเป็นการเรียงลำดับตามการเปรียบเทียบ เนื่องจากในเทคนิคเหล่านี้ ค่าต่างๆ จะถูกเปรียบเทียบ และวางไว้ในตำแหน่งที่จัดเรียงในเฟส ifferent เราจะเห็นความซับซ้อนของเวลาของเทคนิคเหล่านี้

ประเภทการวิเคราะห์ การเรียงบับเบิ้ล การเรียงลำดับการเลือก การเรียงลำดับการแทรก ผสานการเรียงลำดับ การเรียงลำดับด่วน การเรียงลำดับฮีป
กรณีที่ดีที่สุด O(n 2 ) O(n 2 ) O(n) O(ล็อก n) O(ล็อก n) O(เข้าสู่ระบบ)
กรณีเฉลี่ย O(n 2 ) O(n 2 ) O(n 2 ) O(ล็อก n) O(ล็อก n) O(ล็อก n)
กรณีที่เลวร้ายที่สุด O(n 2) O(n 2 ) O(n 2 ) O(ล็อก n) O(n 2 ) O(ล็อก n)

อัลกอริธึมการเรียงลำดับบางตัวไม่ใช่อัลกอริธึมที่อิงตามการเปรียบเทียบ บางส่วน ได้แก่ Radix sort, Bucket sort, count sort สิ่งเหล่านี้เป็นการจัดเรียงแบบไม่มีการเปรียบเทียบเนื่องจากองค์ประกอบสองอย่างในที่นี้ไม่ได้ถูกเปรียบเทียบขณะทำการเรียงลำดับ เทคนิคต่างกันเล็กน้อย ตอนนี้เราจะเห็นความแตกต่างระหว่างพวกเขาโดยพิจารณาจากการวิเคราะห์ประเภทต่างๆ

ประเภทการวิเคราะห์ Radix Sort (k คือตัวเลขสูงสุด) การเรียงลำดับการนับ (k คือขนาดของอาร์เรย์การนับ) Bucket Sort (k คือจำนวนที่เก็บข้อมูล)
กรณีที่ดีที่สุด O(nk) O(n + k) O(n + k)
กรณีเฉลี่ย O(nk) O(n + k) O(n + k)
กรณีที่เลวร้ายที่สุด O(nk) O(n + k) O(n 2 )

เทคนิคการเรียงลำดับสามารถเปรียบเทียบได้โดยใช้พารามิเตอร์อื่น อัลกอริธึมการจัดเรียงบางตัวเป็นอัลกอริธึมการจัดเรียงแบบแทนที่ และบางอัลกอริธึมการจัดเรียงแบบแทนที่ อัลกอริธึมที่ไม่ต้องการพื้นที่เพิ่มเติมเรียกว่า in-place sorting Algorithm เช่น quicksort อัลกอริทึม heapsort อยู่ในสถานที่ แต่การจัดเรียงแบบผสานเป็นเทคนิคการจัดเรียงแบบนอกสถานที่

อัลกอริทึมบางตัวออนไลน์และบางส่วนออฟไลน์ ถ้าอัลกอริธึมยอมรับองค์ประกอบใหม่ในขณะที่กระบวนการเรียงลำดับเกิดขึ้น นั่นเรียกว่าอัลกอริธึมการเรียงลำดับออนไลน์ จากเทคนิคที่กล่าวมาข้างต้น การจัดเรียงแบบแทรกคือเทคนิคการเรียงลำดับแบบออนไลน์