JavaScript バブルソートの例

JavaScript バブルソートの例

1. バブルソートとは何か

Bubble Sort 、隣接する 2 つの要素のサイズを順番に比較します。各比較プロセスでは、順序付けの目的を達成するために 2 つの要素が交換されます。

順序付けられていない数字のシーケンスを小さいものから大きいものの順に並べ替える必要がある場合、2 つの要素を比較するときに、それらを交換することでこれを実現できます。この場合、左側の要素は右側の要素よりも小さくなければなりません。

順序付けられていない数値のシーケンスを最大から最小の順に並べ替える必要がある場合、2 つの要素を比較するときに、左側の要素が右側の要素よりも大きくなるようにそれらを交換することでこれを実現できます。

炭酸飲料の泡のように、底から上に向かって泡立っています。

2. 例を挙げる

2、4、7、5、3、6、1の数字の組み合わせがある場合

ラウンド1:

i=0;

j(内側のループ)は6回ループします。内側のループで行われる作業は、2つの隣接する数字を比較し、大きい数字を最後に、小さい数字を先頭に配置することです。外側のループは1回のループの回数を制御し、内側のループは判断を行います。

0 1 2 3 4 5 1 2 3 4 5 0 ...

2 2 2 2 2 2 2
4 4 4 4 4 4 4
7 7 7 5 5 5 5
5 5 5 7 3 3 3
3 3 3 3 7 6 6
6 6 6 6 6 7 1
1 1 1 1 1 1 7
arr[0] arr[1] arr[2]
アー[1] アー[2] アー[3]

第2ラウンド:

i=1;

j (内側のループ) は5回ループします

0 1 2 3 4 5 1 2 3 4 5 0 ...

2 2 2 2 2 2
4 4 4 4 4 4
5 5 5 3 3 3
3 3 3 5 5 5
6 6 6 6 6 1
1 1 1 1 1 6
7 7 7 7 7 7
arr[0] arr[1] arr[2]
アー[1] アー[2] アー[3]

第3ラウンド:

i=2;

j (内側のループ) は4回ループします

2 2 2 2 2
4 4 3 3 3
3 3 4 4 4
5 5 5 5 1
1 1 1 1 5
6 6 6 6 6
7 7 7 7 7

第4ラウンド:

i=3;

j (内側のループ) は3回ループします

2 2 2 2
3 3 3 3
4 4 4 1
1 1 1 4
5 5 5 5
6 6 6 6
7 7 7 7

第5ラウンド:

i=4;

2 2 2
3 3 1
1 1 3
4 4 4
5 5 5
6 6 6
7 7 7

第6ラウンド:

i=5;

21
1 2
3 3
4 4
5 5
6 6
7 7
*/

<script type="text/javascript">
// 例 1:
関数 show(){
	var arr = [2,4,7,5,3,6,1];
	for(var i=0;i<arr.length-1;i++){
		(var j=0;j<arr.length-1-i;j++){
			//1. 隣接する2つの数値を比較します。大きい方が後ろ、小さい方が前になります。if (arr[j] > arr[j+1] ) {
				var temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = 温度;
			}
		}
	}
	コンソールにログ出力します。
}

// 例 2:
	<本文>
	    <入力タイプ="テキスト" id="テスト">
	    <button type="button" onclick="show()">押してください</button>
	    <入力タイプ="テキスト" id="sc">
	</本文>

    関数 show() {
        oT=document.getElementById("test").value; とします。
        sc = document.getElementById("sc"); とします。
        // コンソールログ(sc);
        // コンソールログ(oT);
        arr = oT.split(""); とします。
        console.log(arr.length);
        (var i = 0; i < arr.length - 1; i++) の場合 {
            (var j = 0; j < arr.length - 1 - i; j++) の場合 {
                //1. 隣接する2つの数値を比較します。大きい方が後ろ、小さい方が前になります。if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = 温度;
                }
            }
        }
        // コンソールログ(arr);
        sc.value=arr;
    }
</スクリプト>

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • JS フロントエンド面接必須 - 基本的なソートアルゴリズムの原理と実装方法の詳細な説明 [挿入/選択/マージ/バブル/クイックソート]
  • JavaScript アルゴリズムの学習: バブルソートと選択ソート
  • JavaScript のデータ構造とアルゴリズム 基本的なソートアルゴリズムの定義と効率の比較 [バブルソート、選択ソート、挿入ソート]
  • JavaScript で実装されたバブルソートと、隣接する数字の交換回数を数える例
  • JS でのクイックソートとバブリングの詳細な説明
  • JavaScriptは古典的なソートアルゴリズムであるバブルソートを実装しています

<<:  Javascript ツリー メニュー (11 項目)

>>:  HTML の左右レイアウトのサンプルコード

推薦する

MySQL 5.7.21 のインストールと設定方法のグラフィックチュートリアル (ウィンドウ)

ウィンドウ環境にmysql5.7.21をインストールします。詳細は次のとおりです。 1. MySQL...

mysql8.0.19 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

JavaScriptを使って動的にテーブルを生成するケースの詳しい説明

目次序文実装のアイデア実装コード成果を達成する序文これは、テーブルを動的に追加する例です。[追加] ...

写真をアップロードして顔を認識する Vue+axios サンプルコード

目次Axios リクエストQs処理データ分析Vantアップロードファイル形式完全なコードこの記事では...

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...

MySQLストアドプロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

ウェブデザインに必須のツール: Firefox Web Developer プラグイン CSS ツールセットのチュートリアル

プラグインは Firefox ブラウザにインストールされます。 Web Developer プラグイ...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

Docker 接続 MongoDB 実装プロセスとコード例

コンテナが起動した後まず管理者にログインして新しいユーザーを作成してください $ docker ex...

MySQLインデックスマージの使い方

インデックスのマージは、MySQL が最下層で提供するインテリジェントなアルゴリズムです。インデック...

mysql5.7.21 utf8 エンコーディングの問題と Mac 環境での解決方法

1. 目標: mysql の character_set_server の値を latin1 から ...

JavaScript でのプロキシの使用を理解するための記事

目次エージェントとは何かプロキシの基礎知識ハンドラオブジェクトのメソッドプロキシでできること参考文献...

Vue2 キューブUI 時間セレクターの詳細な説明

目次序文1. 需要と効果必要効果2. コードの実装index.vue(html)日付方法テスト結果3...

CSSは下部のタップバー機能を実装します

現在多くの携帯電話には、下部のタブバーを切り替える機能があります。私も最近、同様の機能を見つけました...