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

ฟังก์ชัน JavaScript Array#sort() ใช้อัลกอริธึมใด


ข้อกำหนด Javascript ไม่ได้ระบุอัลกอริธึมเฉพาะที่จะใช้ในการใช้งาน Array.sort สิ่งนี้เหลือให้ผู้ดำเนินการตัดสินใจ เครื่องมือ JS ที่แตกต่างกันจึงใช้อัลกอริธึมการเรียงลำดับที่แตกต่างกัน

Mozilla (เอ็นจิ้น Spider Monkey JS) ใช้ mergeSort คุณสามารถดูโค้ดที่เขียนในภาษา C ได้ในที่เก็บ Mozilla:https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit (Chrome, Safari ฯลฯ) ไม่ได้ใช้อัลกอริธึมการจัดเรียงโดยตรง แต่จะเลือกอัลกอริทึมตามประเภทองค์ประกอบและความยาวของอาร์เรย์แทน ตัวอย่างเช่น

อาร์เรย์ตัวเลขใช้ฟังก์ชันการจัดเรียงอย่างรวดเร็วของไลบรารี C++ Std

อาร์เรย์ที่ไม่ใช่ตัวเลขใช้การจัดเรียงแบบผสาน

ในบางกรณีจะใช้การเรียงลำดับการเลือก

ขึ้นอยู่กับประเภทข้อมูลและขนาดขององค์ประกอบอาร์เรย์ซึ่งอัลกอริทึมจะใช้เพื่อจัดเรียงอาร์เรย์