コンテンツ
リスト内の項目のセットをソートすることは、プログラミングにおいて頻繁に行われる作業です。多くの場合、人間はこのタスクを直感的に実行できます。しかしながら、コンピュータプログラムはそれを完成するために命令の正確なシーケンスに従う必要があり、そしてこのシーケンスはアルゴリズムと呼ばれる。ソートアルゴリズムは、整理されていない項目のリストを特定の順序で並べるために使用される方法です。順序付け順序はキーによって決まります。効率と性能の点で異なるソートアルゴリズムがいくつかあります。このタイプのいくつかの知られていて重要なものが含まれます:バブルソート、選択ソート、挿入ソート、およびクイックソート。
多くの商品はアルゴリズムで注文できます (ストックフォト/コムストック/ゲッティイメージズ)
バブルソート
バブルソートは、項目のすべてのリストが順番に並ぶまで順番に並んでいない隣接する要素を繰り返し入れ替えます。このように、項目はその値に応じてリスト内で変動します。最大値は(昇順の場合は)各反復の終わりに終わります。
このアルゴリズムの主な利点は、その実装が簡単でよく知られているということです。さらに、バブルソートでは、一時記憶域を使用せずに要素がスワップアウトされるため、必要なスペースが最小限に抑えられます。主な欠点は、リストに多数の項目が含まれていると、良い結果が得られないことです。これは、この種の順序付けでは、ソートされる要素の数nごとにn2の処理ステップが必要だからです。したがって、バブルソートは学術教育には適していますが、実際の用途には適していません。
選択ソート
選択ソートは、一度に1つの項目を選択してそれをシーケンスの正しい位置に配置することによって、項目のリストを繰り返しトラバースします。
選択ソートの主な利点は、小さなリストでうまく機能することです。さらに、これは場所の順序付けアルゴリズムであるため、元のリストを格納するために必要な容量を超える一時的な格納を必要としません。主な欠点は、大きなリストでは効率が低いことです。バブルソートと同様に、n個の要素ごとにn 2のステップ数が必要です。さらに、そのパフォーマンスは、スクリーニングプロセス前のアイテムの最初の順序によって容易に影響を受けます。このため、この型選択は、少数の要素がランダムな順序で並んでいるリストにのみ適しています。
挿入ソート
挿入ソートはリストを繰り返しソートし、そのたびに順序の乱れた項目を正しい位置に挿入します。
挿入順序の主な利点は、その単純さと、小さなリストで優れたパフォーマンスを発揮することです。これは場所順序付けアルゴリズムであるため、スペース所要量は最小限です。欠点は、他のソートアルゴリズムほどうまく機能しないことです。 n2ステップが機能するために必要なので、insert sortは大きなリストではうまく機能しません。しかし、それはいくつかの項目のリストで特に便利です。
クイックソート
クイックソートは分割統治の原則に従って機能します。まず、ピボット要素に基づいてアイテムのリストを2つのサブリストに分割します。最初のサブリストのすべての要素はピボットよりも小さくなるように配置され、2番目のサブリストのすべての要素はピボットよりも大きくなるように配置されています。リスト全体が編成されるまで、結果として得られたサブリストで同じ分割および編成プロセスが繰り返し実行されます。
クイックソートは、項目の大きなリストでうまく機能するため、効率の点で大きな利点があるため、最良のソートアルゴリズムであると考える人もいます。現場で注文することで、追加の保管スペースも必要ありません。それが提示するわずかな不利な点は、その最悪の性能が上記の他のアルゴリズムの平均性能に似ているということです。ただし、この最悪の場合は非常にまれであることに注意することが重要です。より一般的には、クイックソートは任意のサイズのリストを編成するための最も効率的で広く使用されている方法を作り出します。