js算法之选择排序

选择排序:

     两个for循环嵌套,外循环记录每次循环开始的位置,内循环查找本次循环内的最小值;

  实质是每循环一次将查到的最小值放在每次循环的最初开始的位置;

代码:

var arr=[49,38,65,97,76,13,27,49];

function selectionSort(arr) {

var len = arr.length;

var minIndex,temp;

for (var i =0;i

        minIndex =i;

for (var j =i +1;j

            if (arr[j] < arr[minIndex]) {//寻找最小的数

                minIndex =j;//将最小数的索引保存

            }

}


console.log(arr);

if(minIndex !=i) {

temp = arr[i];

arr[i] = arr[minIndex];

arr[minIndex] =temp;

}

}

return arr;

}

console.log(selectionSort(arr));

循环开始第一次:i等于数组中第0个数,进行循环,找到最小的数,进行置换

初始值

i=0   这时候49开始循环判断,找到最小的数13进行置换 得到

i=1 这时候38开始向后遍历,找到最小的数27进行置换得到


i=2 时 65开始向后遍历,找到最小值38进行替换


i=3时 97开始向后遍历,找到最小值49进行替换


i=4  76开始向后遍历,找到最小值49进行替换


i=5 65开始向后遍历,没有找到最小值,所以56便为最小值


i=6  97开始向后遍历,找到最小值76进行替换


最后得到数组 [13,27,38,49,49,65,76,97];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,981评论 1 45
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,567评论 0 9
  • 出生在小城市的我,似乎必须通过高考这条路。 可是,总有一些声音告诉我: “你是女孩子,考的好不如嫁的好” “复...
    周京京1998阅读 1,709评论 0 0
  • 用精准营销的思维,以最低成本获取流量 我深刻感受到移动互联网对我生活的影响,因为我每天大部分时间都在看手机中度过。...
    醉后知酒浓爱后知阅读 3,030评论 0 0