Which algorithm does the JavaScript Array.sort() function use? I understand that it can take all manner of arguments and functions to perform different kinds of sorts, I'm simply interested in which algorithm the vanilla sort uses.
feedback
|
If you look at this bug 224128, it appears that MergeSort is being used by Mozilla. | ||||
feedback
|
I've just had a look at the WebKit (Safari …) source. A comment in the code specifies the sorting used:
Which is an unorthodox name for selection sort (thanks to Alexey for pointing this out). | |||||||||||||||
feedback
|
After some more research, it appears, for Mozilla/Firefox, that Array.sort() uses mergesort. See the code at http://snipr.com/4o3va. | |||
feedback
|
The ECMAscript standard does not specify which sort algorithm is to be used. Indeed, different browsers feature different sort algorithms. For example, Mozilla/Firefox's sort() is not stable (in the sorting sense of the word) when sorting a map. IE's sort() is stable. | |||
feedback
|
I would imagine it is implemented with quicksort. Most library sorts are. | |||
feedback
|
I think that would depend on what browser implementation you are refering to. Every browser type has it's own javascript engine implementation, so it depends. You could check the sourcecode repos for Mozilla and Webkit/Khtml for different implementations. IE is closed source however, so you may have to ask somebody at microsoft. | |||||||
feedback
|