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

推薦する

Linuxでサーバーのハードウェア情報を表示する方法

みなさんこんにちは。今日は12連休ですが、何かお買い物はしましたか?今日は「Linux View S...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

Vue ディレクティブ v-html と v-text

目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...

JavaScript タイマーの詳細

目次1. 簡単な紹介2. 間隔を設定する2.1 説明2.2 パラメータ2.3 戻り値2.4 使用法3...

MySQL の order by ステートメントの最適化方法の詳細な説明

この記事では、ORDER BY文の最適化について学びます。その前に、インデックスの基礎的な理解が必要...

Docker可視化ツールPortainerの導入と中国語翻訳

#docker 検索#docker プルポーター1. イメージを取得した後、中国語パッケージをダウン...

Ubuntu 20.04 LTS で Java 開発環境を構成する

Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

Linux ifconfig コマンドの使用

1. コマンドの紹介ifconfig (ネットワーク インターフェイスを構成する) コマンドは、ネッ...

Element UI で自動サイズ調整テキストエリアの高さを設定する方法

Element UIのtextarea input自動サイズに設定すると、テキストボックスのデフォル...

JavaScript オブジェクトの組み込みオブジェクト、値型、参照型の説明

目次物体オブジェクト定義オブジェクトのメンバーを反復処理するJS組み込みオブジェクト数学オブジェクト...

MySQL クエリの重複データ (重複データを削除し、ID が最も小さいデータのみを保持します)

開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...