JavaScript を使用してソートアルゴリズムを実装する方法

JavaScript を使用してソートアルゴリズムを実装する方法

バブルソート

バブルソートは、シーケンスの右側から始めて、隣接する 2 つの数字の大きさを繰り返し比較し、結果に基づいて 2 つの数字の位置を交換します。

JavaScript コードの実装:

コードの紹介: 配列変数を宣言し、while を通じて配列変数に値を割り当て、「#」が入力されたら入力を停止し、次に隣接する 2 つの数字をトラバースし、隣接する 2 つの数字を昇順に並べ、n-1 回トラバースしてソートを実行します。

 var a = 配列();
    フラグ=true;
    var i = 0;
    var j = 0;
    var temp = 0;
    while(フラグ){
        var b = prompt("i番目の数字を入力してください:");
        if(b=="#"){
          フラグ=false;
        }それ以外{
            b[i] = 0;
        }
        私は++;
    }
   
    s = a.長さ;
    (j=0;j<s;j++)の場合{
        コンソールにログ出力します。 
    }
    (j=1;j<s;j++)の場合{
       (i=0;i<sj;i++)の場合{
           a[i]>a[i+1]の場合{
                temp = a[i];
                a[i] = a[i+1];
                a[i+1] = 温度;
           }
       }
    }
    (j=0;j<s;j++)の場合{
        console.log("昇順:",a[j]); 
    }

3、4、2、8、6 を入力します。出力は次のようになります。

選択ソート

選択ソートは、ソートするデータから最小値を繰り返し見つけ、それをシーケンスの左端の数字と交換します。

JavaScript コードの実装:

    var a = 配列();
    フラグ=true;
    var i = 0;
    var j = 0;
    var temp = 0;
    while(フラグ){
        var b = prompt("i番目の数字を入力してください:");
        if(b=="#"){
          フラグ=false;
        }それ以外{
            b[i] = 0;
        }
        私は++;
    }
    s = a.長さ;
    (j=0;j<s;j++)の場合{
        console.log("配列:",a[j]); 
    }
    (i=0;i<s;i++)の場合{
        (j=0;j<s;j++)の場合{
            もしa[i]>a[j]であれば
                温度 = a[j];
                a[j] = a[i];
                a[i] = 温度;
            }
        }
    }
    (j=s-1;j>=0;j--){
        console.log("並べ替えを選択:",a[j]); 
    }

挿入ソート

挿入ソートアルゴリズム: 順序付けられた配列要素のストレージを構築することにより、ソートされていない配列要素については、ソートされた配列の最後の要素から最初の要素まで走査し、対応する位置を見つけて挿入します。

js コードの実装:

var フラグ = true;
    var a = 新しい配列();
    var i = 0;
    while(フラグ){
        
        var s = prompt('数字を入力してください:');
        if(s=='#'){
            フラグ=false;
        }それ以外{
            s[i] = 0 である。
        }
        私は++;
    }
    コンソールにログ出力します。
    for(var i=1;i<a.length;i++){
    (var j = i;j>0;j--){
        a[j-1]>a[j]の場合{
            var temp = a[j-1];
            a[j-1] = a[j];
            a[j] = 一時;
        }
    }
}
for(var i=0;i<a.length;i++){
コンソールにログ出力します。
}

5、3、7、4、8、1、6 を入力してください。出力は次のようになります。

要約する

JavaScript を使用してソート アルゴリズムを実装する方法に関するこの記事はこれで終わりです。ソート アルゴリズムのより関連性の高い js 実装については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JS を使用してバイナリ ツリー トラバーサル アルゴリズムのサンプル コードを実装する
  • Matlab による JavaScript プログラミング、重心アルゴリズムによる位置決め学習
  • JavaScript 初心者のための二分探索木アルゴリズムのチュートリアル
  • JavaScript で実装された 7 つのソート アルゴリズムの概要 (推奨!)
  • JavaScript でツリー構造を構築するための効率的なアルゴリズムについての簡単な説明
  • JavaScript でアルゴリズムの複雑さを学ぶ方法
  • jsは赤い封筒の順序と量を指定するアルゴリズムを実装します
  • JavaScript を使用して簡単なアルゴリズムを実行する方法

<<:  Docker 起動時の ES メモリ オーバーフローの解決方法

>>:  デザイン理論:計画、リソース、コミュニケーションの問題について

推薦する

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

Linuxはiftopを使用してネットワークカードのトラフィックをリアルタイムで監視します

Linux は iftop を使用してネットワーク カードのトラフィックをリアルタイムで監視します。...

ウェブページの画像最適化ツールと使用方法のヒントの共有

ウェブページの基本要素として、画像はページの読み込み速度に影響を与える重要な要素の 1 つです。画像...

クールな点滅アラームボタンをおすすめします

効果は以下のとおりです。 コードは次のとおりです (クリックすると展開してソース コードが表示されま...

ページネーションの例とベストプラクティス

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

円形グラデーションプログレスバー効果を実現する CSS サンプルコード

実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...

SQLで同じフィールドの異なる値のデータ統計を実行する

適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

Ubuntu 16.04 に nvidia ドライバー + CUDA + cuDNN をインストールする詳細なチュートリアル

準備1. GPUがCUDAをサポートしているかどうかを確認するlspci | grep -i nvi...

div の特定の実装は自動的に折り返されず、HTML で折り返されないよう強制されます。

1. 改行なしを実現するには<nobr>タグを使用するコードをコピーコードは次のとおりで...

純粋な CSS で「テキストオーバーフローの切り捨てと省略」を実装するいくつかの方法

私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

Vue で Axios 非同期リクエスト API を使用する方法

目次基本的なHTTPリクエストの設定async/await を使用した Axios Axios によ...

MySQLからデータをインポートする際の不正なフォーマット、インポートの遅延、データ損失などの問題を迅速に解決します。

遅い問題を完全に解決したい場合は、MySQL を MySQL 8.0 にアップグレードすることをお勧...