ホームページ  >  記事  >  ウェブフロントエンド  >  安定していない JavaScript ソートは安定する可能性がありますか?

安定していない JavaScript ソートは安定する可能性がありますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 20:43:03535ブラウズ

Can a Non-Stable JavaScript Sort Become Stable?

ひねりを加えた JavaScript での安定した並べ替え

オブジェクトのコレクションの並べ替えはプログラミングにおける一般的なタスクであり、多くの場合、元のデータを保持するために安定性が必要です。等しい要素の順序。ただし、使用されるソート アルゴリズムには安定性が固有ではない可能性があります。

安定した非安定ソートの導入

驚くべきだが効果的なアプローチには、非安定ソートの変換が含まれます。機能を安定させます。ソートの前に、すべての要素の位置が取得されます。ソート条件は、主キーと要素の元の位置を副キーとして考慮するように変更されます。

位置を比較のタイブレーカーとして利用することで、最終的なソート結果の安定性が保証されます。

JavaScript での実装

以下のスニペットは、JavaScript での実装例を示しています。

<code class="javascript">function stableSort(array, key) {
  const positions = [];

  for (let i = 0; i < array.length; i++) {
    positions[i] = i;
  }

  array.sort((a, b) => {
    const keyComparison = a[key].localeCompare(b[key]);
    return keyComparison || positions[a] - positions[b];
  });
}</code>

このコードでは、stableSort 関数は指定された順序で配列を並べ替えます。安定してキーを押してください。位置配列は要素の初期位置を取得します。並べ替え条件は文字列比較の localeCompare に依存し、タイブレーカーとして位置比較にフォールバックします。

このアプローチでは、等しい要素の安定性を維持しながら、非安定な並べ替えアルゴリズムを活用する柔軟性が提供されます。

以上が安定していない JavaScript ソートは安定する可能性がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。