ソートアルゴリズム - 挿入ソート

テキスト

それから私は、挿入ソートについて何かを言いますよ。

まず、聞かせてのは、挿入ソートの原理を説明するには、各挿入配列番号の原理である、元のシーケンスの数に対応した新たな挿入位置を見つけるために、ある順序再注文の前に完了している必要があります。換言すれば、あなたは再ソート元の順序に良いことがあり、シーケンス番号の一部を挿入するたびに、同じ時間の複雑さはO(n²)です。このアルゴリズムは、安定したソート方法です。

直接挿入ソートアルゴリズム分析

コードによると、私たちは、コアの直接挿入ソートを説明します

例えば、我々はこれらの種類の5,3,4,6,2数にしたいです

[] 0 1 2 3 4
5 3 4 6 2

配列にすると、この機能、順序付けされたiは最初の[0] = 5のように定義される、すなわちソート前、1 =最初の添字を定義します。

[1]以下たぶんこの時間よりも素子の[0]、右の動きを作るために[0]が発見されたよりも小さい比較、インナーループに入ります。次いで、[1]この要素は[0]の位置に挿入されています

しかしながら、そのような値を考慮して、古いサブ[1]、第1 TEMPの値をコピーするA [1]→[0]権利を交換し、その値をTEMPに渡されます。すなわち[0]

[] 0 1 2 3 4
3 5 4 6 2

この場合、私は2 =。この時点で、[0]、[1]は、この時点で再度順序付けられたシーケンスに属し、我々は[2] [1](旧)、4 <5は、条件が満たされた場合よりも小さい比較します

TEMP [2]再び比較して、[1]権利をコピーし、そしてする= [0]、3以下が判明した、温度よりも大きく、図4 iは上記の数よりも大きい限り順序付けの存在[i]は順序付けられたシーケンスの値が後方に移動し、

し、[I]は正しい位置に挿入されています。

[] 0 1 2 3 4
3 4 5 6 2

iは= 3場合、5今回6は、条件が満たされない場合、缶はまた、すでに順序付けられたシーケンスとして、求めることが{3,4,5,6}です。

私は4 =ときに最後に、2 <[3]同様に、前述の動作このとき、温度をコピーする第1のA [4]、[4]、右[3] =ことを見出しました

再び、これは温度<[2]、[3] = [2]、右見出されます

再び比較し、それが一時<[1]、[2] = [1]、右が見出されました

再び、これは温度<[0]、[1] = [0]、右見出されます

完全にソートされた上で、この時点では、[0]、この時に一時割り当てを置くことができます。

[] 0 1 2 3 4
2 3 4 5 6

直接挿入ソート複雑分析

スペースからは、補助スペースの一時を必要とするので、私たちはその時の複雑さの鍵を参照してください。

最良の場合のシナリオ、すなわち、シーケンス自体は、n-1の数、0の移動数、このとき、時間複雑さOを比較し、我々は唯一の(線20)の各かどうかを判断するため、この時間を注文された場合(N)

画像

ソートレコードがランダムである場合は、/ 4回を同じ原理に従って、平均動き回るの数(N ^ 2)を比較し、私たちはソート攪拌複雑に直接描画できる確率はO(nは^ 2)ここからも見ることができます

ソートバブルソートと選択のポイントよりも直接挿入ソートより優れたパフォーマンスが安定ソートアルゴリズムです。

おすすめ

転載: www.linuxidc.com/Linux/2019-10/161209.htm