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列挙型のテスト例

プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...

CSS 配送先住所平行四辺形線スタイルの例コード

コードは次のようになります。 // 配送先住所の平行四辺形の線のスタイル <view clas...

MySQLの共通関数を使用してJSONを処理する方法

公式ドキュメント: JSON 関数名前説明JSON_APPEND() JSONドキュメントにデータを...

Nginx10m+の高並列カーネル最適化に関する簡単な説明

高い同時実行性とは何ですか?デフォルトの Linux カーネル パラメータは、最も一般的なシナリオ向...

Typescriptを使用してWeChatミニプログラムを開発するための詳細な手順

Typescript の利点については詳しく説明する必要はありません。ご興味があれば、(https:...

CentOS7にNginxをインストールして自動起動を設定する方法

1.公式サイトからインストールパッケージをダウンロードするhttp://nginx.org/en/d...

ソースコードから、Vue2がデータとメソッドを直接取得できる理由がわかる

目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

JavaScript ベースのシンプルなカルーセルの実装

この記事では、シンプルなカルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹...

Linux での MySQL の文字化け問題の解決方法

プロジェクトはサーバーと対話し、post を通じてサーバー側の jsp にアクセスし、jsp はサー...

Node.js のイベント モジュールに関する知識ポイントのまとめ

Node の研究と応用を通じて、NodeJS はシングルスレッド、イベント駆動型、非ブロッキング I...

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...

DockerでRedisを使用するための詳細な手順

1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...

MySQL 4G メモリ サーバー構成の最適化

会社のウェブサイトのアクセス数が増えてくると(1日10万PV以上)、当然MySQLがボトルネックにな...