バブル ソートは、計算時間が O(n^2) のコンピュータ ソート方法です。ヒープ ソートやクイック ソートの O(nlogn、基数 2) ほどではありませんが、次の 2 つの利点があります。 1. 「プログラミングの複雑さ」が非常に低く、コードを書くのが簡単です。 2. 安定しています。ここでの安定性とは、元のシーケンス内の同じ要素の相対的な順序がソートされたシーケンスでも維持されることを意味しますが、ヒープ ソートやクイック ソートは安定していません。 ただし、一方向および双方向のマージソートやアンバランスバイナリツリーソートはバブルソートよりも高速で安定性がありますが、ヒープソートやクイックソートほど高速ではありません。バブルソートは、n-1 ラウンドのサブソートによって完了します。i ラウンド目のサブソートは、1 番目の数字から ni 番目の数字までです。i 番目の数字が次の数字よりも大きい場合 (昇順、そうでない場合は降順)、2 つの数字が交換されます。 バブルソートアルゴリズムは安定しており、追加スペースは O(1)、比較と交換の時間計算量は O(n^2) です。これは適応型であり、基本的なソートアルゴリズムの時間計算量は O(n) です。バブル アルゴリズムには挿入アルゴリズムに類似した多くの特性がありますが、システム オーバーヘッドがわずかに高くなります。 選別プロセス ソートされた配列 R [1..N] が垂直に立っていて、各データ要素が重さのあるバブルであると仮定します。軽いバブルは重いバブルの下には置けないという原則に従って、配列 R は下から上にスキャンされます。この原則に違反する軽いバブルが見つかると、そのバブルは上方に「浮かぶ」ようになります。このプロセスは、任意の 2 つのバブルの最も軽いバブルが上に、重いバブルが下にくるまで繰り返されます。 コード実装:
バブルソートを使用して n 個のデータをソートするには、合計 n-1 回の比較が必要です。データが元々順序付けられている場合は、n-1 回の比較も必要になります。バブルソートのアルゴリズムは非常に単純で、効率が悪いです。 【編集者のおすすめ】
|
<<: Javaソートアルゴリズムの概要(IV):シェルソート
>>: Java ソートアルゴリズムの概要 (II): 選択ソート
近年、国内外のサイバーセキュリティ情勢はますます複雑化しており、従来のモデルでは国民経済の生命線に関...
[[429751]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
今年 7 月、OpenAI は強力なプラグインである Code Interpreter をリリースし...
スマートホームデバイスへの自然言語生成 (NLG) の統合により、テクノロジーとのやり取りの方法に革...
データ準備の最も一般的なアプローチは、データセットを調査し、機械学習アルゴリズムの期待値を確認し、最...
1. はじめにビッグデータ革命によりデータセンターが爆発的に増加し、エネルギー消費量はますます増加し...
世界がコロナウイルス危機の影響に取り組む中、業界団体は競合するネットワーク リソース、高まるユーザー...
著名なテクノロジー記者マーク・ガーマン氏によると、Appleはバグ修正に集中するため、iOS 18の...
[[118153]]毎年、就職活動の時期になると、どうやって内定を選んだらいいのか、テンセントに行く...
会話型人工知能 (AI) プロジェクトを正常に展開することは、他のデジタル ビジネス プロセスのアッ...
米国現地時間6月16日から20日まで、コンピュータビジョンとパターン認識の分野における世界有数の学術...
機械学習の分野では悲観的な見通しが広がっています。機械学習の人材の採用は減速しています。 [[334...
ChatGPTからAI描画技術まで、人工知能分野における最近の進歩はTransformerのおかげか...
IT Homeは1月13日、海外メディアThe Interceptが現地時間12日に報じたところに...
スマートシティが到来します。人工知能 (AI)、拡張現実 (AR)、モノのインターネット (IoT)...