Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

JavaScript Array#sort() ใช้อัลกอริทึมอะไร

JavaScript Specification ไม่ระบุอัลกอริทึมเฉพาะสำหรับ Array.sort Implementation 留给 Implementor 决定 ดังนั้น JS Engines ต่างๆ ใช้อัลกอริทึมต่างกัน

Mozilla (Spider Monkey JS Engine) ใช้ Merge Sort โค้ด C ใน Mozilla Repository: https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit (Chrome, Safari, เป็นต้น) ไม่ใช่อัลกอริทึมเดียวโดยตรง แต่เลือกตาม Element Types และ Array Length เช่น

  • Numeric Arrays ใช้ C++ Std Library Quick Sort
  • Non-numeric Arrays ใช้ Merge Sort
  • บางกรณี ใช้ Selection Sort

ขึ้นอยู่กับ Data Type และ Size ของ Array Elements ว่าจะใช้ Algorithm ไหนเรียง