バブル ソートは、計算時間が 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): 選択ソート
著者 | アイザック・サコリック編集者 | ヤン・ジェン制作:51CTO テクノロジースタック(We...
車に乗り込み、目的地を入力し、車を始動し、車内で作業または休憩し、快適かつ安全に目的地に到着します。...
[[320126]] [51CTO.com クイック翻訳]ソフトウェア定義広域ネットワーク (SD-...
6月19日のニュース:AI産業の急速な発展に伴い、テクノロジー業界のAI人材に対する需要も高まってい...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
AI ツールが合法化され、職場に導入されるようになると、人々は当然、その使用例や AI ツールに依存...
2017年7月、国務院は「新世代人工知能開発計画」を発表し、人工知能が国家戦略の重要なツールとなって...
ビッグデータダイジェスト制作出典: theguardianすべての作家にとって、盗作はおそらく最も許...
[元記事は51CTO.comより]「アリスマートスピーカーTmall Genie原価499元、クーポ...
ロシアのスプートニク通信は12月17日、米空軍が最近、U2戦闘機の副操縦士として初めて人工知能を使用...
中国ではブロックチェーン、ニューリテール、シェアサイクルが急成長しているが、技術大国である日本は明ら...