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 の左右レイアウトのサンプルコード

推薦する

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明

序文mysqlslap は、MySQL サーバーへのクライアント負荷をシミュレートし、各ステージの時...

docker pullがリセットされる問題を解決する

この記事では、docker pull がリセットされる問題を解決する方法を紹介し、皆さんと共有します...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

ウェブページ作成のヒントのまとめ

序文この記事は主に、日常の Web ページ制作で遭遇する問題解決スキルの一部をまとめ、皆さんの参考と...

JavaScript で右クリック メニューを統合する layim のサンプル コード

目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...

MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

公式の MySQL ダンプ ツールで、特定のデータベースのみを復元するにはどうすればよいですか?完全...

ウェブページレイアウトに関する9つのヒント

<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案 W...

CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

ハートの属性不透明度: .999 は要素のスタッキングコンテキストを作成し、ボタン6と8のアニメーシ...

セマンティック HTML タグの紹介

ここ数年、ウェブサイト開発では DIV+CSS が非常に人気があり、当時は大きな騒動を引き起こしまし...

Lua モジュールを使用して WAF を実装する Nginx の原理の分析

目次1. WAFの背景2. WAFとは3. 動作原理4. WAF機能5. WAFと従来のファイアウォ...

webpackでHMRを手動で実装するいくつかの方法

目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...

HTMLのテーブルタグの基本学習チュートリアル

表ラベルの構成HTML 内の表は <table> タグで構成されており、ブラウザはタグを...

MySQL無料インストール版のパスワードの設定と変更に関するチュートリアル

ステップ 1: 環境変数を構成する (解凍パス: G:\mysql\mysql-5.7.21-win...

HTML と埋め込み Flash の両方におけるスクロールバーの分析と処理

開発を行う際に、次のような状況に遭遇することがよくあります。 a.swf が Web ページに追加さ...