ホームページ > 記事 > ウェブフロントエンド > JSソートアルゴリズムの概要
この記事では、JS ソート アルゴリズムのバブル ソート、選択ソート、挿入ソートを主に紹介し、バブル ソート、選択ソート、挿入ソートの概念、原理、実装方法をサンプルの形式で分析します。
この記事の例では、バブル ソート、選択ソート、挿入ソートの JS ソート アルゴリズムについて説明します。参考までに皆さんと共有してください。詳細は次のとおりです:
バブルソート:
配列内のデータについて、連続する 2 つの隣接する数値のサイズを比較します。
前のデータが後のデータより大きい場合は、2 つの数値を交換します。
時間計算量O(n^2)
function bubble(array){ var temp; for(var i=0; i<arr.length; i++){ for(var j=0; j<arr.length; j++){ if(arr[j]>arr[j+1]){ temp = arr[j+1]; arr[j+1] =arr[j]; arr[j]=temp; } }console.log(arr); } }//冒泡排序
選択ソート:
まず元の配列から最小のデータを選択し、それを位置1のデータと交換します。
残りのn-1個のデータから次に小さいデータを選択し、2番目のデータと交換します。
最後の 2 つのデータが交換されるまで繰り返します。
時間計算量O(n^2)
function selectionSort(array){ var min,temp; for(var i=0; i<array.length-1; i++){ min=i; for(var j=i+1; j<array.length; j++){ if(array[j]<array[min]){ min=j; } } swap(array,min,i); } console.log(array); }//选择排序 function swap(array,i,j){ var temp =array[i]; array[i]=array[j]; array[j]=temp; }//两个数字交换
挿入ソート:
まず、最初の 2 つのデータを小さいデータから大きいデータまで比較します。
次に、3番目のデータと最初に配置した2つのデータを比較し、3番目のデータを適切な位置に挿入します。等々。
(挿入ソートには2つのループがあります。外側のループは配列を1つずつ移動し、内側のループは外側のループで選択された要素をその前の数値と比較します。)
時間計算量O(n^2 )
function insertSort(arr){ var temp, j; for(var i=1; i<arr.length; i++){ temp =arr[i]; j=i; while(j>0 && arr[j-1]>temp){ arr[j]=arr[j-1]; j--; } arr[j]=temp; } }
以上は皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。
関連記事:
JavaScriptで繰り返される要素の出現数をカウントする
JQUERYを使用して複数のAJAXリクエストを実装する方法
vuex を呼び出してインターフェイスデータを vue.js に保存する方法
以上がJSソートアルゴリズムの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。