データ構造の並べ替え方法の比較
ここでは、いくつかのソート方法を示します。 200以上のソート手法があります。それらのいくつかを見るでしょう。一部の並べ替え手法は比較ベースの並べ替えであり、一部は非比較ベースの並べ替え手法です。
比較ベースのソート手法には、バブルソート、選択ソート、挿入ソート、マージソート、クイックソート、ヒープソートなどがあります。これらの手法では、値が比較され、さまざまなフェーズでソートされた位置に配置されるため、これらの手法は比較ベースのソートと見なされます。ここでは、これらの手法の時間計算量を確認します。
分析タイプ | バブルソート | 選択ソート | 挿入ソート | マージソート | クイックソート | ヒープソート |
---|---|---|---|---|---|---|
ベストケース | O(n 2 ) | O(n 2 ) | O(n) | O(log n) | O(log n) | O(logn) |
平均的なケース | O(n 2 ) | O(n 2 ) | O(n 2 ) | O(log n) | O(log n) | O(log n) |
最悪の場合 | O(n 2) | O(n 2 ) | O(n 2 ) | O(log n) | O(n 2 ) | O(log n) |
一部の並べ替えアルゴリズムは、非比較ベースのアルゴリズムです。それらのいくつかは、基数ソート、バケットソート、カウントソートです。ここでは2つの要素が並べ替え中に比較されないため、これらは非比較ベースの並べ替えです。テクニックは少し異なります。ここで、さまざまなタイプの分析に基づいて、それらの違いを確認します。
分析タイプ | 基数ソート(kは最大桁) | カウントソート(kはカウント配列のサイズ) | バケットソート(kはバケットの数) |
---|---|---|---|
ベストケース | O(nk) | O(n + k) | O(n + k) |
平均的なケース | O(nk) | O(n + k) | O(n + k) |
最悪の場合 | O(nk) | O(n + k) | O(n 2 ) |
ソート手法は、他のいくつかのパラメーターを使用して比較することもできます。一部の並べ替えアルゴリズムはインプレース並べ替えアルゴリズムであり、一部はアウトプレース並べ替えアルゴリズムです。余分なスペースを必要としないこれらのアルゴリズムは、インプレースソートアルゴリズムと呼ばれます。クイックソート、ヒープソートアルゴリズムなどが導入されています。ただし、マージソートはアウトプレースソート手法です。
一部のアルゴリズムはオンラインで、一部はオフラインです。ソートプロセスの進行中にアルゴリズムが新しい要素を受け入れる場合、それはオンラインソートアルゴリズムと呼ばれます。上記の手法から、挿入ソートはオンラインソート手法です。
-
データ構造の最小スパニングツリー
スパニングツリー は、最小数のエッジで接続されたすべての頂点を持つ無向グラフのサブセットです。 すべての頂点がグラフで接続されている場合、少なくとも1つのスパニングツリーが存在します。グラフには、複数のスパニングツリーが存在する場合があります。 最小スパニングツリー 最小スパニングツリー(MST) は、接続された重み付き無向グラフのエッジのサブセットであり、すべての頂点を可能な限り最小の合計エッジ重みで接続します。 MSTを導出するには、プリムのアルゴリズムまたはクラスカルのアルゴリズムを使用できます。したがって、この章ではプリムのアルゴリズムについて説明します。 すでに説明したように、
-
データ構造における二分木表現
ここでは、コンピュータのメモリでバイナリツリーを表現する方法を説明します。表現するには2つの異なる方法があります。これらは配列とリンクリストを使用しています。 このようなツリーが1つあるとします- 配列表現は、レベル順の方法を使用して要素をスキャンすることにより、ツリーデータを格納します。したがって、ノードをレベルごとに格納します。一部の要素が欠落している場合は、空白のままにします。上記のツリーの表現は以下のようになります- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 5