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

推薦する

Java を Mysql バージョン 8.0.18 に接続する方法の詳細な説明

JavaとMysql 8.0.18バージョンの接続方法については、参考までに具体的な内容は以下のとお...

ドロップダウンメニューとスライドメニューのデザイン例

ドロップダウン メニューやスライド メニューを使用している Web サイトをたくさん見つけたので、私...

よく使用される MySQL 関数の完全なリスト (分類および要約)

1. 数学関数ABS(x) xの絶対値を返します。 BIN(x) xの2進値を返します(OCTは8...

Win10環境にMysql5.7.23をインストールする際の問題点と落とし穴

たくさんのチュートリアルを読みましたが、うまくインストールできませんでした。しばらく試行錯誤した後、...

ベスト HTML/CSS デザインおよび開発フレームワーク 15 選を紹介します

プロフェッショナルな Web デザインは複雑で時間がかかります。 HTML と CSS フレームワー...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

Linux で複数のファイルの名前を一度に変更する方法

序文日常業務では、すべての jpg ファイルを bnp に変更したり、名前の 1 を one に変更...

タブステータスバーの切り替え効果を実現するための js と jQuery

今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...

JavaScript で Webpack を使用するチュートリアル

目次0. Webpackとは1. Webpackの使用2. Webpackのコアコンセプト2.1 エ...

LNMP を展開して HTTPS サービスを有効にする方法に関するチュートリアル

LNMP とは: Linux+Nginx+Mysql+(php-fpm、php-mysql)つまり、...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

Tomcat Nginx Redis セッション共有プロセス図

1. 準備ミドルウェア: Tomcat、Redis、Nginx Jar パッケージ: commons...

検証コードケースのjs実装

この記事の例では、検証コードを実装するためのjsの具体的なコードを参考までに共有しています。具体的な...

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...

jsはシンプルな計算機を実装します

参考までに、ネイティブjsを使用して簡単な計算機(詳細なコメント付き)を実装します。具体的な内容は次...