Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScript Array#sort()関数はどのアルゴリズムを使用しますか?


Javascript仕様では、Array.sort実装で使用される特定のアルゴリズムを指定していません。これは実装者に決定を任せます。そのため、JSエンジンが異なれば、使用する並べ替えアルゴリズムも異なります。

Mozilla(スパイダーモンキーJSエンジン)はmergeSortを使用します。それのために書かれたコードは、MozillaリポジトリのCで見ることができます:https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit(Chrome、Safariなど)は、並べ替えアルゴリズムを直接使用せず、代わりに要素タイプと配列の長さに基づいてアルゴリズムを選択します。たとえば、

数値配列は、C++Stdライブラリのクイックソート関数を使用します。

非数値配列はマージソートを使用します。

他のいくつかのケースでは、選択ソートを使用します。

配列の並べ替えに使用されるアルゴリズムは、配列要素のデータ型とサイズによって異なります。


  1. 最高のJavaScriptコンプレッサーはどれですか?

    これが利用可能な最高のJavaScriptコンプレッサーのいくつかです- Googleクロージャーコンパイラ Google ClosureコンパイラはJavaScriptをすばやく実行し、優れたJavaScriptに使用されます。 JavaScriptを解析して分析し、デッドコードを削除し、書き直して、残っているものを最小限に抑えます。 JSMin 縮小する場合は、JSMinを使用して不要なコメントを削除します。 YUIコンプレッサー YUI Compressorは、JavaScriptファイルを迅速に縮小するために使用され、安全です。

  2. JavaScriptで並べ替え順序として配列を使用する

    const sort = ["this","is","my","custom","order"]; const myObjects = [    {"id":1,"content":"is"},    {"id":2,"content":"my"},    {"id":3,"content