[アルゴリズム]様々なソートアルゴリズムは、C ++で実装します

私たちは通常、アルゴリズムは、多くの場合を指し並べ替えを参照してください。内部ソートアルゴリズムメモリに記録されたデータをソートします。

  ソートアルゴリズムは、大きく2種類に分けることができます。

    一つは、比較の並べ替え、O(nlogn)〜O(n個の時間複雑 ^ 2)、 以下のとおりです。バブルソート選択ソート挿入ソートマージソートヒープソートクイックソートのような。

    もう一つは非ソートの比較、時間の複雑さはO(n)を達成することができ、以下のとおりです。カウンティングソート基数ソートバケットソートのような。

次の表は、一般的なソートアルゴリズムの性能比較を示しています。

 

以下、説明の便宜上、以下のアルゴリズムは、すべての並べ替え[n]はint型の配列をスクランブル対象です。


 

  1. バブルソート(バブルソート)

アイデアは:隣接する二つの要素を比較するために、その比較的完全な現在の最大(小)要素の各ラウンドは、あなたが並べ替えを達成することができ、n個のホイールを繰り返して、最後尾に移動されます。

実装:

1  空隙(バブルソートのint []、int型開始、int型エンド)
 2  {
 3    のためのint型私は++; I <エンドI =始まる4    {
 5      ためint型 I + = J 1、J <END; J ++ 6      {
 7        場合([I]> [J])
 8        {
 9          のstd ::スワップ([I]、[J])。
10        }
 11      }
 12    }
 13 }

特定の注文プロセスを図:

 

要約:

2サイクル以降の単純なソートアルゴリズム、安定性、複雑さはOであるので、(N 2)。(しかし、考える仕事を探して、初めてその年について尋ねられたとき、結果が予想される応答なしと出てくる、本当に私は恥ずかしいアルゴリズムを感じました。)


 

参考記事:https://www.cnblogs.com/eniac12/p/5329396.html#s1

おすすめ

転載: www.cnblogs.com/Swetchine/p/11295657.html