JAVAscript数组的排序——冒泡和选择

冒泡排序

冒泡排序:顾名思义,向冒泡泡一样进行排序;就是进行诸位比较,大的在后。
需要使用循环的嵌套,采用多行多列,进行两两相比

简单冒泡的实现

for(var i=0;i<arr.length-1;i++){//大循环确定执行几轮
	for(var j=0;j<arr.length-1;j++){//小循环确定每轮执行几列
		if(arr[j] > arr[j+1]){
		var ls=arr[j];//创建一个临时变量,保存其中大值
		arr[j]=arr[j+1];//将小值强制赋值给大值
		arr[j+1]=ls;//再将保存出来的大值重新赋值给原来的小值
		}
	}
}

简单冒泡完成

选择排序

选择排序:每次拿出一个数据和其他数据相比较;得到大的或小的值。与初始位置交换。

for(var i=0;i<arr.length-1;i++){
        // 假设,将第一位保存出来,用来和后面所有作比较
        // 假设,第一位是最小值
        var iNow = arr[i];
        // 立即将假设的最小值的位置,也存出来
        var iNowIndex = i;
        // 0-3
        // 1-4
        for(var j=i+1;j<arr.length;j++){
            // 验证假设第一位是最小的正确性,不正确,就拿到比假设的值还小的值
            if(iNow > arr[j]){
                iNow = arr[j];
                iNowIndex = j;
            }
        }
        // 小循环执行结束后,iNow必然是最小值,此时此刻数组还没有发生变化
        var ls = arr[i];
        arr[i] = iNow;
        // 上面是将最小值,放在第一位
        // 第一位原本的数据,放在,原本最小值的位置,原本最小值得是哪呢?
        arr[iNowIndex] = ls;
    }

选择排序完成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值