ヒルソート、ヒープソート、マージソート

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/weixin_kab777/article/details/102736029

シェルソート

考えた:
思考の(1)直接挿入ソート、秩序ある配列を作るかのように、複雑さを作ることができる時間はO(n個)に近づきます。したがって、このアルゴリズムはまた、規則的アレイに集中しています。まず、パケット配列をグループ化する方法は、例えば、アレイ11は、数は、我々はその後、1が設定され、1の3つのグループに分けることができると仮定する。
(2)パケット・アレイの所定の幅に、外側のループが開始I = 0 +幅から、電流値記憶されたTMPのARRと直接することができる[i]は、次いで後方iは配列トラバースさ++まで、内部ループJ 【左グループの最初の外側ループ電流から逆方向に起動する必要、各パスの幅の長さ、すなわち、J- =幅、そして各々がケアTMPが必要O、TMPは、[J] ARR場合よりも小さい、次いでARR j]を割り当てARR [J +幅]、j及び後方には、そうでない場合は、この内側のループを引き起こす直接ジャンプ、内側ループは値割り当てられたTMPのARR [J +幅]の後に終了します。そして、次の外側のループを入力します。
時間の複雑さ:O(nは^ 1.3〜N ^ 1.5)
複雑スペース:O(1)
安定性:不安定

ヒープソート

考えた:
(1)アナログの配列は、完全なバイナリツリーに分け、その後、我々は完全二分木の特性を学ぶことができます任意の既知の親または子ノードについて、残りの2を見つけることができます。たとえば、次の既知の親ノードN 2の左の子。N- + 1、右の子ノードが2 N-2 +、左または右の子ノードに知られているN、親ノード(N-1)/ 2。
(2)ヒープソート、ヒープしなければならない第1の最大構成では、子供が親ノードノード以上のように、現在のリーフノードのルートから始まります。第1の開始位置格納された値のARRとTMP iがi = 0になるまでI-後方、外側ループは、開始時に始まる、[開始]、現在の内側ループからjが現在の横に、各サイクルの子開始を残しています左の子ノードj、jは-1に配列の長さを制限します。内側のループに入る、最初の値は左の子と右の子ノードよりも大きいか否かを判断するので、jをjの値よりも小さい場合には大きな電流値を子ノードに格納されている固定++。次いで、ARR [J]の現在の値と比較TMPは、ARR TMP>場合[j]は、[開始] =のARR [J内側ループからの電流、またはARRである ] インナーループ条件の後、スタート= Jの終了をさせ;、ARRに[開始] TMP =
(3)現在のツリーのツリーの最後の親ノードと第交換、最大スタックに基づいて構築は、0から開始し、ループをステップする必要がlen-1回その後、別の調整を行う、それが建物に内部ループの最大ヒープを呼び出すことです。
時間の複雑さ:O(nlogn)
複雑スペース:O(1)
安定性:不安定

マージソート

別のアレイに割り当てられたグループに見られるパケット2徐々に小さい値によって周期的の長さ):( 1を考え、各サイクルは確実にするために、各グループ内で注文することができるので、次のサイクル基は、と等価です左の右半分におけるグループの数や配列に沿って相互に順序付け割り当てグループは、その後、別のアレイの現在の配列を渡します。
(2)グループが達成2例
最初の:グループの右半分の存在、すなわちであるがLOW2 <LEN;
分析:[LOW1] ARRのみLOW1 <= HIGH1 && LOW2 <比較サイクル= ARRとHIGH2ケース[HIGH1 ]、小さな値をBRRに割り当てられます。
条件を満たしていた後に、決定された左右のグループ、残りのグループであり、より少ない低決意条件は、次に、BRRに割り当てられ、残りの数高くなります。

第二:LOW1 <LENあるグループの左半分のみ。直接BRRを割り当てられたグループ内の番号へ。

時間の複雑さ:O(nlogn)
複雑スペース:O(n)の
安定性:不安定

おすすめ

転載: blog.csdn.net/weixin_kab777/article/details/102736029