単純包含法関数c。 直接包含メソッドを使用して配列をソートします。 双方向挿入方式
この方法は、カードをプレイするときに広く使用されています。 要素(カード)は、すでに「準備ができている」シーケンスA 1、A 2、...、A i -1と、「残りの」(ソートされていない)部分:A i、A i + 1、…、ANに精神的に分割されます。
この方法の本質は、各i番目のステップ(i \u003d 2から開始)で、i番目の要素がソートされていない部分から抽出され、「終了」部分に配置され、必要な場所に挿入されることです。
メソッドテキストアルゴリズム:
1.はじめに。
2. iが2からNまでの値を持っている間にループし、
ステップ\u003d 1:
a)i番目の要素(A(i))をセルA(0)に配置します。
b)j \u003d -1を割り当てます。つまり、jは、サブジェクトの左側(i番目)にある要素の数に等しく、したがって「準備完了」シーケンスに立っています。
c)А(0)≥А(j)の場合、要素А(0)をセルА(j + 1)に配置する必要があります。そうでない場合、要素А(j)をセルА(j + 1)に配置する必要があり、jの値を1つ減らします。 再度項目c)を実行します。
図では 図1は、直接包含ソートのブロック図である。
この方法は次のように機能します。i番目のステップ(i \u003d 2から開始)で、i番目の要素が空きセル(たとえば、A(0))に配置されます。 この要素は、「完成した」部分の左側の要素と比較されます。 要素A(0)が小さい場合、比較対象(j番目の要素)は1位置右にシフトされ、その後、次の要素が比較対象になります。 要素A(0)が比較以上であることが判明した場合、要素A(0)は比較対象の要素の直後の場所に配置されます。
図: 1.直接包含法によるソートのブロック図
図では 直接包含法によるソートの例を示す。
元のシーケンス | |||||||||
A(0) | |||||||||
I \u003d 2 | ![]() | ||||||||
I \u003d 3 | |||||||||
I \u003d 4 | |||||||||
I \u003d 5 | |||||||||
I \u003d 6 | |||||||||
I \u003d 7 | |||||||||
I \u003d 8 | |||||||||
結果 |
図: 2.直接包含法によるソートの例
直接包含ソートは、ソートされるデータが順番に(次々に)来る場合に適しています。
直接選択による並べ替え
この方法の本質は次のとおりです。 「残りの」(ソートされていない)部分の最小のアイテムが選択され、(同じソートされていない部分の)最初のアイテムと交換されます。 その後、ソートされていない部分の長さが1要素(最初の要素)短縮され、プロセス全体が(n-1)要素、次に(n-2)要素など、1つになるまで続行されます。 最大の要素。
この方法は、ある意味で直接包含法の反対です。 直接包含の方法では、各ステップで、次の要素が1つだけ考慮され、シーケンスのすでに「準備完了」部分のすべての要素が考慮され、その中にこの次の要素の包含点が見つかります。 また、直接選択方式では、1つの(最小)要素を見つけるために、ソートされていない部分のすべての要素が調べられ、この最小要素は、すでに「準備完了」の部分に別の要素として配置されます。
メソッドテキストアルゴリズム:
1.はじめに。
2.1からN-1までの値がある間にループします
ステップ\u003d 1:
a)現在の(i番目の)要素をメモリセル(X)に配置し、現在の要素のシリアル番号(i)を(変数Kに)記憶します。
b)jの値がi + 1(つまり、iの次の要素から)からNまでの間にループを実行します。ステップ\u003d +1:
サイクルの本体:X\u003e A(j)の場合、要素A(j)をセルXに配置し、その番号をセルKに記憶します。
c)A(K)\u003d A(i)およびA(i)\u003d Xを割り当てます。
図では 図3は、直接選択法によるソートの実施例を示している。
元のシーケンス | 44 | 06 | ||||||
I \u003d 1 | 55 | 12 | ||||||
I \u003d 2 | 55 | 18 | ||||||
I \u003d 3 | 42 | 55 | ||||||
I \u003d 4 | 94 | 44 | ||||||
I \u003d 5 | 55 | 94 | ||||||
I \u003d 6 | 94 | 67 | ||||||
I \u003d 7 |
図: 3.直接選択方式によるソート例
配列内の値の昇順または降順で並べ替え(順序付け)するために、多くの方法が開発されています[Wirth、Knut。 m 3]。最初のn、n \u003d 6、配列Xの要素を明確に仮定して、そのうちの3つを検討します。
次の各i番目のステップ、i \u003d 2、3、...、n-1で、配列の(i + 1)番目のセルからの値は、前のセルからの番号と位置を交換することにより、セルインデックスの減少に向けて昇格されます。 また、前のセルに含まれている数が少ないこともわかりません。
直接包含法を実装する場合、外側のループをn-1回実行する必要があり、数値の比較と並べ替えを実行する必要のある内側のループの実行の可能な最大数が1からn-1に増加すると言われています。 ただし、内部ループは、条件が発生したときに終了するか、まったく実行されないように編成する必要があります。つまり、配列の前のセルの値が現在のセルの値よりも小さくなります。
この例では:
i \u003d 2の場合、セルX 3の番号15は、セルX 2の番号34と、次にセルX 1の番号21と順番に場所を交換します。
i \u003d 4の場合、セルX 5の番号25は、セルX3の番号34と場所を交換します。
以下は、直接包含(順序の保持を伴う包含)の方法によって、配列Xの最初のn個の要素を昇順で順序付けるためのプログラムのフラグメントです。
while(X
0)します R:\u003d X [j];
X [j]:\u003d X;
X:\u003d R;
for i:\u003d 1からn-1do
配列内の番号を降順で並べ替えるには、各ステップで、配列の隣接するセルの番号を逆に並べ替える条件を変更するだけで十分です。つまり、前のセルが現在のセルよりも小さい場合に、隣接するセルの値の交換が実行されます。
直接交換方式(バブル方式)。
この方法は、前の方法と同様に、アレイの隣接セルの値の交換に基づいていますが、順次分析の最初のステップから、アレイの一方の端からもう一方の端に移動するときに、アレイの隣接セルのすべてのペアが関与します。
最初のステップで、j \u003d n、n-1、...、2の場合、配列の隣接するセルの値が比較され、条件X j<Х j-1 выполняется их перестановка, в результате чего наименьшее число оказывается в ячейке Х 1 .
この例では、最初のステップを完了すると、配列内のデータは次のように配置されます。
次の各ステップで、チェックされるセルのペアの数が1ずつ減少します。一般に、任意のステップi、i \u003d 1、2、3、...、n-1で、プロセスはjに対してnからi + 1まで、特に実行されます。 、i \u003d n-1の場合-n番目と(n-1)番目のセルに対して1回だけ。
以上のことから、直接交換方式を導入する場合、外側のループをn-1回実行する必要があり、数値の比較や並べ替えを行う必要のある内側のループの実行回数がn-1から1に減少します。
「バブル法」という用語の由来は次のように説明されます。インデックスが上から下に増加するアレイセルの垂直配置を想像すると、考慮される最小数が水中のバブルのように上昇します。
この例では
i \u003d 3の場合、順列は配列の次の状態につながります
バブル法を使用する場合、配列内の数値のペアの分析がインデックスの増加または減少のどちらに進むかは問題ではなく、順序のタイプ(昇順または降順)は、数値の並べ替えの条件によってのみ決定されます(小さい方が大きい方の後ろに配置する必要があります)。
修正直接交換法(修正バブル法)。
上記の数値例からわかるように、配列は4番目のステップの後で順序付けられていることがわかりました。つまり、外側のループをn-1回ではなく実行できますが、配列が既に順序付けられていることがわかった場合は実行できません。 このチェックは以下に基づいています。内側のループの実行中に順列がなかった場合、配列はすでに順序付けられており、外側のループを終了できます。 並べ替えが実行されたかどうかの兆候として、ブール型変数が使用されます。内部ループに入る前に、Falseなどの1つの値が与えられ、並べ替えを実行するときに、Trueなどの別の値が与えられます。
明らかに、元の番号のシーケンスが目的の方向に順序付けられている場合、変更されていない方法と比較して変更されたバブル方法を使用した場合のソートプロセスの高速化の効果が観察されます。 極端な場合、アレイがすでに必要な方法で順序付けられていると、外側のループの本体は1回だけ実行されます。
この方法は、カードをプレイするときに広く使用されています。 要素(マップ)は、すでに「準備ができている」シーケンスA1…Anと元のシーケンスAi…Anに精神的に分割されます。 各ステップで、i \u003d 2から開始し、毎回Iを1ずつ増やして、i番目の要素を元のシーケンスから抽出し、適切な場所に挿入しながら、完成したシーケンスに転送します。
上記は、ランダムに選択された8つの数値を含めることによるソートプロセスの例を示しています。このソートのアルゴリズムは次のとおりです。
FOR i:\u003d 2 TO n DO
a ... a [j]の対応する場所にxを含める。
適切な場所を見つける実際のプロセスでは、Xをふるいにかける、つまりXを次の要素ajと比較し、Xを空き領域に挿入するか、ajを右にシフト(送信)するかのように、シーケンスに沿って比較と移動を交互に繰り返すと便利です。 左に「葉」。 次の2つの異なる条件のいずれかが満たされると、スクリーニングプロセスが終了する場合があることに注意してください。
1.Xのキーよりも小さいキーを持つ要素ajを見つけました。
2.終了したシーケンスの左端に到達しました。
2つの終了条件でプロセスを繰り返すこの典型的なケースでは、よく知られているセンチネルトリックを使用できます。 ここでは、値Xでバリアa0を設定することにより、簡単に適用できます(このためには、変数aの説明のインデックスの範囲を0 ... nに拡張する必要があることに注意してください)。
直接包含法の分析。 i番目のスクリーニングでの主要な比較(Ci)の数は、最大でi -1、少なくとも-1です。 n個のキーのすべての順列が同じ確率であると仮定すると、比較の平均数はi / 2になります。 転送(要素の割り当て)の数Miは、Ci + 2(バリアを含む)に等しくなります。 したがって、比較の総数と転送の数は次のようになります。
Сave\u003d(n2 + n-2)/ 4、
Сmax\u003d(n2 + n-4)/ 4、
M min \u003dЗ*(n-1)、
M ave \u003d(n2 + 9n-10)/ 4、
M max \u003d(n2 + 3n-4)/ 2。
最小スコアは、要素の最初のシーケンスがすでに順序付けられている場合に見つかりますが、最悪のスコアは、最初に逆の順序で配置されたときに発生します。 ある意味で、包含ソートは本当に自然な動作を示します。 与えられたアルゴリズムが安定したソートのプロセスを記述していることは明らかです。等しいキーを持つ要素の順序は変更されません。
直接包含のアルゴリズムは、完成したシーケンス(a1 ... ai-1、新しい要素を挿入する必要があります)がすでに順序付けられていることに注意すれば、簡単に改善できます。バイナリ検索で停止するのは自然です。バイナリ検索では、完成したシーケンスの中央と比較しようとします。 次に、半分に分割するプロセスは、包含ポイントが見つかるまで続きます。これは、バイナリ挿入と呼ばれる変更された並べ替えアルゴリズムです。
方法:これらの物質の誘電率の水分含有量への依存性に基づいて、物質の水分含有量を間接的に測定する方法。 出典:RMG 75 2004:ユニを確保するための州のシステム...
血液 -BLOODは、体の動脈、静脈、毛細血管を満たし、透明で淡い黄色がかった液体です。 血漿の色とそれに浮遊する形成された要素:赤血球、または赤血球、白色、または白血球、および血液プラーク、または... 素晴らしい医療百科事典
プロパティ -(不動産)不動産の定義、不動産の種類、不動産の賃貸と売却不動産の概念、不動産の種類、不動産の賃貸と売却、課税と保険に関する情報コンテンツは不動産の種類です... ... 投資家百科事典
この用語には他の意味があります。Cを参照してください。参照:C(プログラミング言語)C ++セマンティクス:マルチパラダイム:オブジェクト指向、汎用、手続き型、メタプログラミング実行タイプ:コンパイル済み... Wikipediaで紹介
無形資産の価値の評価 -(英語の無形資産の評価)-重要な重要な内容を持たず、国が指定した期間中に企業に収入をもたらす特定のオブジェクトのグループに対する企業の権利の範囲の価値の決定......。 金融および信用百科事典
学校一般教育 -ええと。 教育する。 機関、基本的な要素は教育されています。 システム。 この能力でSh。研究decompの主題。 分野:ped。、history。、demographic。、sociology、その他。教育学においてのみ、Sh。の問題は完全に独立しています。 場所。 知識...... ロシア教育百科事典
時間 -3.3.4時間tE(時間tE):公称動作で到達した温度から最大周囲温度での許容温度までの、ローターまたはステーター巻線の初期始動交流電流IAによる加熱時間。 ソース … 辞書-規範的および技術的文書の用語のリファレンスブック
GOST R IEC 60204-1-2007:機械の安全性。 機械および機構の電気機器。 パート1。一般的な要件 -用語GOSTR IEC 60204 1 2007:機械の安全性。 機械および機構の電気機器。 パート1.一般要件元の文書:TN供給システム18.2.2に従ったテスト方法1は、各回路に対して実行できます......。 辞書-規範的および技術的文書の用語のリファレンスブック
自動 -3.3.1パイプラインを流れる液体の代表的なサンプルを抽出するために使用される自動サンプラーデバイス 注オートサンプラーは通常、プローブ(ディップスティック)、エクストラクターで構成されています...... 辞書-規範的および技術的文書の用語のリファレンスブック
電圧 -3.10応力:公称寸法でのリンクの断面積に対する引張力の比率
ソートの必要な定義と分類。
並べ替え。 ソートの必要な定義と分類。 直接包含および選択ソート。 それらの有効性
並べ替え キーに応じた通常の形式でのメモリ内のデータの配置です。 したがって、データを処理するときは、データの情報フィールドとそのマシン内での配置を知ることが重要です。 したがって、区別する 内部 (RAMでの並べ替え)および 外部ソート (外部メモリでの並べ替え)。 規則性 要素の配置は、配列の最初から最後までのキー値の増加(減少)です。
ソートするレコードが大量のメモリを消費する場合、それらの移動にはコストがかかります。 それらを減らすために、 アドレステーブルのソート方法..。 この方法はで使用されます キーアドレステーブル..。 ポインタが再配置されます。 アレイ自体は移動しません。 並べ替えるとき、同じキーが存在する可能性があります。 この場合、ソースファイルと同じ順序で並べ替えた後、同じキーを配置することが望ましいです。 この原則は、 持続可能な仕分け.
並べ替えの効率は、いくつかの基準から見ることができます。
1) 並べ替えに費やした時間。
2) ソートに必要なRAMの量。
3) プログラムを書くためにプログラマーが費やした時間。
並べ替えにかかる時間は、並べ替えの比較数と移動したアイテムの数に比例します。
ソート時の比較番号の順番は、以下の範囲であると考えられます。 o(nlogn) 前 o(n 2)どこ オン) -理想的で達成不可能なケース。
並べ替え方法は、次のように分類できます。
1)厳密な(直接)方法 (それらの有効性はほぼ同じです):
· 直接包含;
· 直接選択;
· 直接交換;
2)改善された技術.
人生において、この分類の原則は、ソリティアゲームをプレイするとき、アパートを掃除するとき、混合物の束を適切な順序で配置する必要があるときなどに存在します。 非常に自然なソート方法がデータの順序付けに適用されました。
要素は精神的に既製のシーケンスに分割されます a 1、...、a i-1 と元のシーケンス。 完成したシーケンスでは、要素は指定された順序(降順または昇順)に配置されます。 また、元のシーケンスには、ソートする必要のある要素が含まれています。 各ステップで、元のシーケンスの要素が1つ減り、完成したシーケンスの要素が1つ増えます。 これは、元のシーケンスから抽出されるという事実によるものです 私-完成したシーケンスの要素の中で適切な場所に挿入されている間に、要素が完成したシーケンスに転送されます。
要素のシーケンス(10、3、11、8、2、15、44、9)での直接包含法によるソートの例を考えてみます(表11.1)。 昇順で並べ替える必要があります。
最初、完成したシーケンスには要素がありません。 最初のステップでは、元のシーケンスの最初の要素である10が、完成したシーケンスの最初の要素になります。 次に、2番目のステップ:元のシーケンスの要素3が完成したシーケンスに配置されます。 こんなふうになります。 要素が10より大きい場合はその場所に残り、小さい場合は10が1つ右にシフトされ、要素がその場所に配置されます。 3以降<10, то готовая последовательность теперь будет иметь вид: 3, 10, а исходная – 11, 8, 2, 15, 44, 9. Далее на третьем шаге из исходной последовательности выбирается 11 и помещается в готовую последовательность. Сначала 11 сравнивается с 10, и так как 11>10、その後11はそのままです。 元のシーケンスは8、2、15、44、9になります。後続のステップは同じ方法で実行されます。
表11.1
直接ソートのしくみ
このソートのステップ数(表11.1)は、ソートされたシーケンスの要素の数と同じです。 8ステップ\u003d 8要素。
このメソッドを実装するには、バリアなし(図11.1)とバリアあり(図11.2)の2つの方法があります。