ホームページ > ウェブフロントエンド > jsチュートリアル > jsソート: js挿入ソートのアルゴリズム原理とコード実装

jsソート: js挿入ソートのアルゴリズム原理とコード実装

不言
リリース: 2018-08-14 15:33:30
オリジナル
1660 人が閲覧しました

この記事の内容は、js のソートに関するものです。js の挿入ソートのアルゴリズムの原理とコードの実装について説明しています。必要な方は参考にしていただければ幸いです。

アルゴリズム原理

挿入ソートは、シンプルで直感的な並べ替えアルゴリズムです。それは私たちがトランプを引く方法と非常によく似ています。
ソートされていないデータ(右側にあるカード)の場合は、ソート順に後ろから前にスキャンし(すでに左側にソートされているカード)、対応する位置を見つけて挿入します。
挿入ソートの実装では、通常、インプレースソートが使用されます。そのため、後ろから前へのスキャンプロセス中に、ソートされた要素を繰り返し、徐々に後方に移動して、最新の要素の挿入スペースを確保する必要があります。

具体的なアルゴリズムは次のように説明されます (小さいものから大きいものへソートされています):

  • 最初の要素から始めて、この要素はソートされていると考えることができます。

  • 次の要素を取り出し、ソートされた要素シーケンスを後ろから前にスキャンします。

  • (ソートされた) 要素が新しい要素より大きい場合は、新しい要素を次の位置に移動します (つまり、位置は逆方向、1 つ前に移動します)。

  • 新しい要素以下の並べ替えられた要素が見つかるまで、手順 3 を繰り返します。つまり、順方向走査は実行されません。新しい要素が現在の位置に挿入されます。

  • 手順 2 ~ 4 を繰り返します。

jsソート: js挿入ソートのアルゴリズム原理とコード実装

具体的なアルゴリズムは次のように説明されます (大きいものから小さいものへソートされています):

  • 最初の要素から始めて、この要素はソートされていると考えることができます。

  • 次の要素を取り出し、ソートされた要素シーケンスを後ろから前にスキャンします。

  • (ソートされた) 要素が新しい要素より小さい場合は、新しい要素を次の位置に移動します (つまり、位置は逆方向、1 つ前に移動します)。

  • 新しい要素以上の並べ替えられた要素が見つかるまで、手順 3 を繰り返します。つまり、順方向走査は実行されません。新しい要素が現在の位置に挿入されます。

  • 手順 2 ~ 4 を繰り返します。

コードの実装

  • 挿入ソートは小さいものから大きいものへの配列のソートを実装します

function mintomax(par) {
  for (var i = 1; i = 0; j--) {
      if (par[j + 1] = par[j]) {
        break;
      }
    }
  }
  return par;
}
var arr = [11, 2, 3, 445, 7, 32, 71, 8, 94];
console.log(mintomax(arr));
ログイン後にコピー
  • 挿入ソートは配列を実装し、実装中に小さいものから大きいものへ配列をソートします

function mintomax(par){
  for(var i=1; i<par.length>=0 && par[j]>par[j+1]){
      [par[j],par[j+1]]=[par[j+1],par[j]];
      j--;
    }
  }
  return par;
}
var arr = [11, 2, 3, 445, 7, 32, 71, 8, 94];
console.log(mintomax(arr));</par.length>
ログイン後にコピー
  • 配列大から小への並べ替え

function maxtomin(par) {
  for (var i = 1; i = 0; j--) {
      if (par[j + 1] > par[j]) {
        [par[j],par[j+1]]=[par[j+1],par[j]];
      } else if (par[j + 1] 
ログイン後にコピー
  • 挿入ソートは大から小への配列の並べ替えを実装し、

function maxtomin(par){
  for(var i=1; i<par.length>=0 && par[j]<par var console.log><ul class=" list-paddingleft-2"><li><p>親子タイリング順に並べ替えます</p></li></ul><pre class="brush:php;toolbar:false">function datatotree(par) {
  for (var i = 1; i =0; j--) {
      var str1=par[j].GLZDXM+par[j].ZDXM_STDCODE;
      var str2=par[j+1].GLZDXM+par[j+1].ZDXM_STDCODE;
      if(par[j].GLZDXM==null){
        str1=par[j].ZDXM_STDCODE;
      }
      if(data[j+1].GLZDXM==null){
        str2=par[j+1].ZDXM_STDCODE;
      }
      if (str2 = str1){
        break;
      }
    }
  }
  return par;
}
var data = [{
    ZDXM_STDCODE: '100101',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '1001',
  },
  {
    ZDXM_STDCODE: '1001',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '',
  },
  {
    ZDXM_STDCODE: '100102',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '1001',
  },
  {
    ZDXM_STDCODE: '100201',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '1002',
  },
  {
    ZDXM_STDCODE: '1002',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '',
  },
  {
    ZDXM_STDCODE: '100202',
    ZDXM_STDNAME: '',
    FINA_YYSR: '',
    FINA_PGZHSY: '',
    FINA_SJZHSY: '',
    FINA_PGZHSYL: '',
    FINA_SJZHSYL: '',
    FINA_ZHSYLCE: '',
    FINA_SRJJL: '',
    FINA_JSSKL: '',
    FINA_HTE: '',
    GLZDXM: '1002',
  },
]
console.log(datatotree(data));
ログイン後にコピー
  • 上記を並べ替えた結果コード

jsソート: js挿入ソートのアルゴリズム原理とコード実装

関連する推奨事項:

JS はバブルソート、挿入ソート、クイックソートを実装し、出力をソートします

php はテーブルをソートするために js を使用し、phpjs テーブルをソートします

JS によって実装されたカウントソートと基数ソートアルゴリズムの例_JavaScript スキル


以上がjsソート: js挿入ソートのアルゴリズム原理とコード実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート