【21天学习挑战赛—经典算法】经典算法---直接选择排序


活动地址:CSDN21天学习挑战赛

*学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

CSDN—21天学习挑战赛—【经典算法】

学习专栏地址

经典算法_一头小山猪的博客-CSDN博客

学习计划

1,学习目标

经典算法的基础学习,以及数据结构入门级学习

**

学习日记

**

1,学习知识点

经典算法-----直接选择排序

3,学习的收获
  • 数组分成有序区和无序区,初始时整个数组都是无序区,然后每次从无序区选一个最小的元素直接放到有序区的最后,直到整个数组变有序区。
  • O(n²) 的时间复杂度

图示

步骤说明

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

var arr = [9,0,8,1,7,2,6,3,5,4];
for (i=0;i<arr.length-1;i++){
    var minIndex=i;
    for(j=i+1;j<arr.length;j++){
        // 对象解构
        if(arr[minIndex]>arr[j])
            minIndex = j;
    }
    [ arr[i], arr[minIndex] ]=[ arr[minIndex], arr[i] ];
}

步骤实例:
9,0,8,1,7,2,6,3,5,4
0,9,8,1,7,2,6,3,5,4
0,1,9,8,7,2,6,3,5,4
0,1,2,9,8,7,6,3,5,4
0,1,2,3,9,8,7,6,5,4
0,1,2,3,4,9,8,7,6,5
0,1,2,3,4,5,9,8,7,6
0,1,2,3,4,5,6,9,8,7
0,1,2,3,4,5,6,7,9,8
0,1,2,3,4,5,6,7,8,9

runoob.com-选择排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值