Articles

並べ替えとは何ですか?


ベストアンサー

コンピュータサイエンスでは、 並べ替えアルゴリズム は、リストの要素を特定の順序で配置するアルゴリズムです。最も頻繁に使用される順序は、番号順と辞書式順序です。効率的な並べ替えは、入力データを並べ替えられたリストに含める必要がある他のアルゴリズム(検索アルゴリズムやマージアルゴリズムなど)の効率を最適化するために重要です。並べ替えは、データを正規化したり、人間が読める形式の出力を生成したりする場合にも役立ちます。より正式には、ソートアルゴリズムの出力は、次の2つの条件を満たす必要があります。

  • 出力は降順ではありません(各要素は、目的の全順序に従って前の要素より小さくなりません)。
  • 出力は入力の順列(並べ替え、ただし元の要素はすべて保持)です。

さらに、入力データは配列に格納されることが多く、シーケンシャルアクセスのみを許可するリストではなく、ランダムアクセスを許可します。ただし、適切な変更を加えると、どちらのタイプのデータにも多くのアルゴリズムを適用できます。

並べ替えアルゴリズムは、単語の後に「並べ替え」という単語が続くものと呼ばれることが多く、英語では文法的に名詞句として使用されます。たとえば、「大きなリストで挿入ソートを使用するのは非効率的です」という文の例では、挿入ソートというフレーズは、挿入ソートのソートアルゴリズムを指します。

回答

10億個のオブジェクトをソートすることはそれらをメモリに保持できれば、間違いなく手の届くところにあります。 O(n log n)を比較する必要がありますよね?できない場合は、コンピュータ(または分散システムを使用している場合はコンピュータ)のメモリに収まるものを並べ替えて、結果をマージソートできます。1990年代のある時点で、修正されたマージソートは世界最高の速度記録とスーパーCPUあたりの線形速度が向上します。

Nが大きくなると(または実際には妥当な入力で何かが遅くなると)、本当に必要なものを詳しく調べます。

オブジェクトを並べ替える必要があるのはなぜですか?重複を探しているだけの場合は、はるかに高速な方法があります!下(または上)の5%を処理する場合は、投稿に基づいて分割できるO(n)アルゴリズムがありますソート位置!

処理が遅くなったときは、何が行われているのかを確認します。それが最速のアルゴリズムであるかどうかを判断する前に、それが実際に正しいことであるかどうかを判断します。まったく!(例外:より高速な「何でも」がすでにデバッグされたシンである場合は、たたくことができます。それを実行する方がよい場合があります。配列に要素が何度も含まれているかどうかをテストする場合、配列をセットに置き換える方が簡単で、さらに6時間の調査を行った場合に、半分を削除できるほど高速であるかどうかを確認できます。小切手など)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です