言語ごとのソートの実装
具体的な使い方はここでは書かない。仕様がどこにあるのかを重要視している。
C言語
qsort
C言語標準で持っているソートはこれのみ
クイックソート
非安定ソート(要注意)
比較関数は必須
比較関数に渡せる追加情報が存在しないため、比較条件が異なる場合、グローバル変数(あるいはスタティック変数)を使うか、その都度別の関数を渡すようなことをしなければならない。
Java
java.util.Arrays.sort(..)
配列型に対するソート
以下の2つがある。
プリミティブ数値型配列のソート
Comparable インターフェースを持つオブジェクトのソート
カスタマイズする場合、Comparator オブジェクトを渡す。
適応型の反復マージ・ソート
安定ソート
java.util.Arrays.parallelSort(..)
マルチスレッドによる並列実行ソート
java.util.Arrays.sort と同じインターフェース
並列マージ・ソート
安定ソート
Java 8 から
java.util.Collections.sort(..)
List インターフェースを持つコレクションで、Comparable インターフェースを持つオブジェクトのソート
カスタマイズする場合、Comparator オブジェクトを渡す。
修正マージソート
安定ソート
JavaScript
Array.prototype.sort()
JavaScript 標準で持っているソートはこれのみ
実装については明示されていない。
ES2019 から安定ソートになった。(要注意, IE11 は非安定ソート)
比較関数が与えられない場合、文字列に変換され、UTF-16 コード単位順になる。なので数値順が欲しい場合には要注意。