JavaScript Array#sort() 関数は、指定された引数に基づいてさまざまな並べ替え操作をサポートする多用途の並べ替えメカニズムです。そして機能。しかし、パラメータのないバニラのソートエンジンはどのようなエンジンを使用しているのでしょうか?
WebKit ソース コード (Chrome と Safari で使用) を詳しく見てみると、アルゴリズムの選択は、配列:
数値配列またはプリミティブ型を含む配列: これらの配列は、C std::qsort を使用して並べ替えられます。通常、クイックソートのバリエーション (多くの場合イントロソート) を実装する関数。
非数値型の連続配列: これらの配列は文字列に変換され、マージソートを使用して並べ替えられます (安定性のために可能な場合)。または qsort (その他の場合)。
その他の型 (非連続配列および連想配列) arrays): WebKit は、選択ソート (最小ソート) を利用するか、場合によっては、これらのタイプの AVL ツリーをソートします。ドキュメントが不明確なため、各型に使用される特定のアルゴリズムを判断するには、コード パスを追跡する必要があります。
注目すべき点として、コードには、文字列化された配列の並べ替えを高速化するために基数ソートの使用を示唆するコメントが含まれていますが、このコメントは、基数ソートの実行時の複雑さについての誤解を浮き彫りにしています。
以上がJavaScript の「Array.sort()」はどのような並べ替えアルゴリズムを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。