検索
ホームページphp教程PHP开发交換ソート - バブル ソート (バブル ソート)

交換ソートは主にソート対象のレコードのキーコードをペアで比較し、ソート対象のレコードのキーコードがソート要件に反する場合に交換します。まず、列を並べ替えるバブリング プロセスを見てみましょう。1

i=1; //最初のレコードからペアごとの比較を設定します

i≧jの場合、ワントリップバブリングは終了します。

r[i].keyとr[i+1].keyを比較し、r[i].key ≤ r[i+1].keyの場合は交換せず、r[i]の場合は⑤

へ.key>r[i+1].key, r[i]=r[i+1]; r[i+1]を変更します。 ]

i=i+1 を r[i+1] と交換し、次の 2 つのレコードのペアごとの比較を調整し、②

バブル ソート方法に切り替えます: n レコードのテーブルの場合、最初のバブルは A です。最大のキー コードを持つレコード r[n] を取得し、n-1 レコードのテーブルに対して 2 番目のバブルが実行され、最大のキー コードを持つレコード r[n-1] が取得されます。これを n 個のレコードが押されるまで繰り返します。キーコードで指定します。


【アルゴリズム10.6】


j=n; //n件のテーブルから開始

j

i=1; //バブリング1回、最初から設定開始レコード ペアごとの比較を実行します。

i≧j の場合、1 つのバブリング トリップが終了します。j=j-1; バブル テーブル内のレコード数は -1 です。②

に進み、r[i].key と比較します。 r[i+1 ].key、r[i].key≤r[i+1].keyの場合、交換なし、⑤へ

r[i].key>r[i+1].keyの場合, r[i] r[i+1]; r[i] と r[i+1] を交換します

i=i+1; 次の 2 つのレコードを調整してペアで比較します。 ④へ

【効率分析】

スペース効率:補助ユニットは1台のみ使用。

時間効率: j 個のレコードを持つテーブルに対して合計 n-1 回のバブリング操作が必要であり、j-1 個のキー コードの比較が必要です。

移動数:

交換ソート - バブル ソート (バブル ソート)最良の場合: 並べ替える列はすでに順序が整っており、移動する必要はありません


最悪の場合: 各比較後に 3 つの移動が必要です。もっと見る 交換ソート-バブルソート (Bubble Sort) 関連記事は、PHP 中国語 Web サイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。