アルゴリズムの複雑さの分析とプレゼンテーションをソートするたびに

ソートアルゴリズムの概要

任意のキー比較アルゴリズムにより、時間の複雑さは、より良いnlgn以上ではありません。ランクではないキー比較アルゴリズムを割り当てます。
ここに画像を挿入説明

2.交換ソート(バブルソート)

アルゴリズムの紹介

いわゆるスイッチングは、配列が配列内の2つの記録された位置を交換するために2つのキーに記録された比較結果に基づいて、特性をソート交換がある:大型記録シーケンスのキー前後移動、複数のキー小さな記録は配列の前部に移動させられます。

ボイドswapsort([]をINT)
{
{ための式(I ++ INT iは= 1; iが<= N)
{(; J <= N J ++ INTJ = I + 1)のための
IF([I]> [J ]){
int型のTEMP = [I]。
[I] = [J]。
[J] = TEMP。
}
}
}
}

時間複雑

私は-、FOR-jに対する-I、FOR-J実行N-2倍、...、及び最終的に第二のパスの間に、N-1回実行するために、私は、最初のパスでは、n回実行するため、I場合再度、FOR-J 0実行時間。
したがって、T(N)=(N- 1)+(N-2)+ ... + 1 + 0 =(N-1)* N / 2。

3.マージソート

アルゴリズムが導入された
いくつかのサブシーケンスに分類される、すなわちシーケンスを、各サブシーケンスが順序付けされます。そして、順序付けられたシーケンスに全体のサブシーケンスを命じました。
ここに画像を挿入説明
時間複雑
最高、最悪と平均的なケースのために、問題が1までの規模、その3の同じ時間の複雑さを打破する必要があります。
   T(N)= 2T(N / 2)+θ(n)は、N> 1
   T(N)=θ(1 )のn = 1
のビデオ再帰ツリー明らかTによって分析(N)= cnlgn + CN 、 時間複雑それはもちろん、また(nlgn)O、θ(nlgn)の程度です。

4.クイックソート

アルゴリズムの紹介

クイックソート1960年にCARホーアによって提案されました。基本的な考え方は次のとおりです。個別に速い二つの独立した部品は、すべてのデータの他の部分よりも、すべてのデータが小さくなるように一部、二部のためのデータのこの方法に分類されるデータを順序付けることによって旅ソート、プロセス全体をソートすると、順序付けられたシーケンスにデータ全体を達成するために、再帰的にすることができます。

挿入ソート

アルゴリズムが導入された
挿入ソート、単純な挿入ソートで、基本的な考え方は次のとおりです。レコードは、完成へのすべてのレコードまで、すでに注文したソート順に挿入された一つのキー値によって、そのサイズに応じてソートしますこれまでのところ、新しい順序付けられたシーケンスを取得します。

ヒルソート(パケット挿入)

シェルソート単位で記録パケットを押すの主題である、直接挿入の使用ソート各ソートアルゴリズム、増分が徐々に減少すると、より多くのキーワードの各々が、インクリメントに減少するとき、ファイル全体がひとつのセットに分割され、アルゴリズムは終了します。この方法は、名前のDLShellのために1959年に提案しました。
この方法は、基本的にパケット挿入方法です。

6.選択ソート

アルゴリズムが導入された
配列の開始位置に格納された要素のソート最小(または最大)から選択される第一のデータ要素を、その後、(大)の要素を最小限に残りの未分類の要素から検索し、次に置きますシーケンスの最後にソート。そしてように、データ要素のすべての数をソートするまでゼロである
FUNC選択ソート(NUMS [] Int32)を{
長さ:= LEN(NUMS)
Iの場合:= 0; I <長さ、I ++ {
分:= I
jについて= I + 1、J <長さ、J ++ {
NUMS [J] <NUMS [分] {IF
分= J
}
}
TEMP = NUMS [I]
NUMS [I] NUMS [分] =
NUMS [分] = TEMPを
}
fmt.Println(NUMS)
}

時間複雑さ
のために、Iのみボトム1交換するので、n-1のように、総スイッチング時間、およびすべての場合に(最悪)の時間複雑度は3(N-1)であるように割り当てられた3回交換するそれぞれのニーズ。

7ヒープソート

アルゴリズムが導入
ヒープソート(英語:ヒープソート)が使用ヒープのために設計されたソートアルゴリズムようなAデータ構造体を指します。スタックは、ほぼ完全なバイナリツリー構造であるプロパティと満足の堆積:キーまたはインデックスを子ノードであることを常に未満(またはより大きい)その親ノードです。

ボイドヒープソート(int型N、ヒープ&H){
Makeheap(N、H)。
Removekeys(N、H、HS);
}

実際には、アルゴリズムは、一定の構造ヒープであり、その後、ルートノードを削除します。たびに、ルートノードの除去が最大、完成シーケンシングのように同じです。次の図は一例です。
ここに画像を挿入説明

8.割り当てランク(基数ソート)

アルゴリズムが導入された
キークラスアルゴリズムを比較していません。

例えば、次の数字は、ベース10、左側の最初の行の最初の、異なるパイルにあり、その後、左側に第二位、そして最終的に左側に第三位。だから、中央値を確認した後、列と秩序の数です。待機は真実に似て右端からも可能である場合。

ここに画像を挿入説明

公開された21元の記事 ウォン称賛18 ビュー1455

おすすめ

転載: blog.csdn.net/zephyr_wang/article/details/104264554