เพียงแค่สงสัยว่าทำไมJava
และ.NET Framework
ใช้อัลกอริทึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้น
ใน Java Array.Sort()
ใช้อัลกอริทึมMerge Sortตามค่าเริ่มต้นและตามที่Wikipedia.comพูดว่า:
ใน Java เมธอด Arrays.sort () ใช้การเรียงแบบผสานหรือการปรับแบบเร็วขึ้นอยู่กับประเภทข้อมูลและสำหรับการสลับประสิทธิภาพการปรับใช้เพื่อเรียงลำดับการแทรกเมื่อเรียงลำดับองค์ประกอบอาร์เรย์น้อยกว่าเจ็ดรายการ
ใน. NET Framework Array.Sort/List.Sort()
ใช้Quick Sortเป็นอัลกอริทึมการเรียงลำดับเริ่มต้น ( MSDN ):
List.Sort () ใช้ Array.Sort ซึ่งใช้อัลกอริทึม QuickSort การใช้งานนี้จัดเรียงไม่เสถียร นั่นคือถ้าสององค์ประกอบมีค่าเท่ากันลำดับของพวกเขาอาจไม่ถูกสงวนไว้ ในทางตรงกันข้ามการจัดเรียงที่มีเสถียรภาพจะรักษาลำดับขององค์ประกอบที่เท่ากัน
จากการดูตาราง"การเปรียบเทียบอัลกอริธึม"ที่ยอดเยี่ยมเราจะเห็นได้ว่าอัลกอริธึมทั้งสองนั้นมีพฤติกรรมที่แตกต่างจากมุมมองการใช้งานหน่วยความจำและกรณีแย่ที่สุด:
ทั้งสองJava
และ.NET
เป็นกรอบการทำงานที่ยอดเยี่ยมสำหรับการพัฒนาโซลูชันองค์กรทั้งสองมีแพลตฟอร์มสำหรับการพัฒนาแบบฝัง เหตุใดพวกเขาจึงใช้อัลกอริธึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้นความคิดใด ๆ