JavaScript-初识总结——数组的排序

冒泡排序

使用冒泡排序算法,对数组中的元素进行从小到大排序时,会重复遍历数组中的元素;每次遍历时,都会比较相邻的两个元素,并把较小的元素位置交换到前面。

冒泡排序在第一次遍历时,就已经通过交换把最大的元素放在了数组末尾,因此在第二次遍历时,最后一个元素无需参与比较。在三次遍历时,最后两个元素无需参与比较……依次类推,当第二个元素不需要参与比较时,排序实际上就已经完成了。可以得出:遍历的次数是数组的长度减一

上代码:

var arr = [8, 3, 15, 11, 17, 16, 20, 4, 10, 9, 2]
for(var i = 1;i <= arr.length - 1; i ++){
    for(var j = 1;j <= arr.length - i; j ++){
        if(arr[j - 1] > arr[j]){ 	//把这里的大于号换成小于号就可以实现从大到小
            var temp = arr[j]
            arr[j] = arr[j - 1]
            arr[j - 1] = temp
        }
    }
}
console.log(arr)

选择排序

使用选择排序算法对数组中的元素进行从小到大排序时,会重复的遍历数组中的元素,每次遍历时,会选择出最小元素和此次遍历时的第一个元素做交换。

选择排序在第一个遍历时,就已经通过交换把最小的元素放在了数组的最开头,因此在第二次遍历时,第一个元素不再参与选择。在三次遍历时,前两个元素无需参与选择……依次类推,当倒数第二个元素不需要参与选择时,排序实际上就已经完成了。可以得到:遍历的次数是数组的长度减一

上代码:

var arr = [8, 3, 15, 11, 17, 16, 20, 4, 10, 9, 2]
var index 					//用来记录最小值(从大到小排序时是最大值)的下标
for(var i = 1;i <= arr.length - 1; i ++){
    index = i - 1 			//假设第一个元素为最小值(从大到小排序时是最大值)
    for(var j = i;j <= arr.length; j ++){
        if(arr[j - 1] < arr[index]){ //把这里的小于号换成大于号就可以实现从大到小
            index = j - 1 //将较小(从大到小排序时是较大)的元素的下标给index
        }
    }
    //当代码执行到这里时,index中存储的一定是最小值从大到小排序时是最大值)的下标
    //将这个最小值和此次遍历时的第一个元素做交换
    var temp = arr[i - 1]
    arr[i - 1] = arr[index]
    arr[index] = temp
}
console.log(arr)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值