JavaScriptのソートアルゴリズムの選択の

プロセス:
最初のサイクルの開始位置を再び最小デフォルトの位置として定義されている
開始位置の次の位置から、実行サイクル
値は、インデックスの格納位置に関する位置における値より小さい場合
、位置に格納されたインデックス値に
ループ端部は、格納されたインデックスとを比較する、インデックスが開始位置である場合
とそうでない場合、上の二つの位置の交換価値
最小サイクルが存在する、のサイクルの開始位置に配置される
並べ替え完了するために複数のサイクルを行う
手順:

var arr=[....]
// 外层循环,实现排序循环次数,次数是单元个数 -1
for(j=0;j<arr.length-1;j++){
// 先默认起始位置就是最小值位置,存储起始位置的索引,也就是 j
      // 之前的起始位置,不参与下一次循环
var min=j;
// 默认的最小值位置是当前循环的起始位置,是j
// 比较,要从下一个位置开始,内层循环起始,是比较的起始位置+1开始循环 
for(i=j;i<arr.length;i++){
// 如果有单元的数值,小于存储的索引对应的数值
if(arr[min]>arr[i]){
//变量中,存储当前较小值的索引下标
// 不是做数据交换,是存储这个数值位置的索引下标
min=i
}
}
// 内层循环执行完毕,存储的索引下标如果不是起始的索引j
// 就交换 min中存储的索引下标对应的数值 和 j索引下标应的数值
if(min!=j){
var a=0;
a=arr[i];
arr[i]=arr[min];
arr[min]=a;
}
}
console.log(arr);

コアは:
最小インデックス、データ交換の開始位置を見つける
最初のインデックス、データの交換に行くために
:最適化
の比較値は、次の比較に参加していない前出1.
ロング比較限り2.n単位、N-1回

選択ソート:
問題の発生順序た場合は、操作の割り当てインデックスを実行する必要があり
、データ交換を行うために、判断が行われ、サイクルが完了するように

公開された21元の記事 ウォンの賞賛3 ビュー324

おすすめ

転載: blog.csdn.net/qq_44531034/article/details/104979596