辞書編集文字列比較アルゴリズムは非常に簡単に動作します。文字コードはループ内で比較され、文字が等しくない場合は結果が返されます。
C 言語の例は次の場所にあります。
https://github.com/gcc-mirror/gcc/blob/master/libiberty/memcmp.c
単一の静的エンコーディングで文字を比較する必要があることを考慮する必要があります。たとえば、Swift では UTF-32 で文字ごとの比較を使用しました。 memcmp を使用した配列ソート オプションは、シングルバイト文字に対しては正確に機能しますが、その他の場合 (可変長エンコーディング)、順序が正しくない可能性があります。可変長エンコーディングに基づいた実装の可能性は排除しませんが、おそらく桁違いに複雑になるでしょう。
アルゴリズムの時間計算量は、最良の場合は O(1)、平均および最悪の場合は O(n) です
ソース
https://ru.wikipedia.org/wiki/Lexicographic_order
ソース
https://gitlab.com/demensdeum /algorithms/blob/master/lexiCompare/lexiCompare.swift