加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

JS实现选择排序

发布时间:2020-12-14 23:51:57 所属栏目:资源 来源:网络整理
导读:选择排序,原理就是每一次从待排序的数据中选出最小(大)的元素,将他放在序列的起始位置,直到排完整个序列。 来看选择排序的js实现方式: function selectionSort(arr) { var len = arr.length,min,temp; for (var i = 0; i len - 1; ++i) { min = i; for

选择排序,原理就是每一次从待排序的数据中选出最小(大)的元素,将他放在序列的起始位置,直到排完整个序列。

来看选择排序的js实现方式:

function selectionSort(arr) {
    var len = arr.length,min,temp;

    for (var i = 0; i < len - 1; ++i) {
        min = i;
        for (var j = i + 1; j < len; ++j) {
            if (arr[j] < arr[min]) {
                min = j;
            }
        }
        temp = arr[min];
        arr[min] = arr[i];
        arr[i] = temp;
    }

    return arr;
}

例如,有以下数值[3,2,6,8,1]

第一次排序,首先选中第一个元素3(其实是记住他的下标0),然后将他依次与后面的数据比较,因为2<3,所以此时最小值下标min被置为1,6>2 pass,8>2 pass,1<2 min被改为4,循环结束,然后将4下标的值放到数组最前(最小值)。

第二次排序,此时数组是[1,3],选中第二个元素2(下标1),2<6 pass,2<8 pass,2<3 pass,循环结束,将1下标放到数组第二个位置。

第三次排序,此时数组是[1,3],选中第三个元素6(下标2),6<8 pass,6>3 min置为4,循环结束,将4下标与下标2的值互换。

第四次排序,此时数组是[1,3,6],选中第四个元素8(下表3),8>6 min置为4,循环结束,将4下标与下标3的值互换,得到数组[1,8],排序结束,得到所需的数组。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读