JavaScript—冒泡、选择排序之逆战班系列

冒泡排序:在未排序的数组中从首个元素下标开始,依次比较其元素的大小(按从小到大的顺序),如果前一个元素值大于后一个元素值,就将其元素值进行交换,如果前一个元素值小于后一个元素值,将不进行处理。执行到最后数组的元素就以从小到大的顺序依次排列了。
具体代码:

 console.log('冒泡排序');
    var array=[3,5,2,6,1,4];
    for(var i=0;i<array.length-1;i++)
    {
        for(j=i+1;j<array.length;j++)
            if(array[i]>array[j]){
                array[i]=array[i]+array[j];
                array[j]=array[i]-array[j];
                array[i]=array[i]-array[j];
            }
    }
    console.log(array);

执行结果:
在这里插入图片描述
选择排序:在未排序的数组中,将第一个元素值看为整个数组的最小(或者最大)值,将这个最小(最大)值与数组的每一个值进行比较,如果这个最小值大于数组的某一个值(最大值小于数组的某一个值),则将这个值的下标赋值给最小(最大)值的下标,最后判断最小(最大)值的下标是否为第一个,如果是就不进行操作,反之则交换那两个值。下一次循环就将第二个值设为最小或(最大)值,对前一个值就不进行操作了,这样的话每一轮都能将数组的最小(或最大)值找出来,并且从第一个下标开始依次存放值。这样就形成了一个按照从小到大(从大到小)的顺序的数组了。
具体代码:

console.log('选择排序');
    var array1=[12,3,24,45,1,9,29,18];
    for(var i=0;i<array1.length-1;i++){
        var min=i;
        for(var j=i+1;j<array1.length;j++){
            if(array1[min]>array1[j]){
               min=j;
            }
        }
        if(min != i){
            array1[min]=array1[min]+array1[i];
            array1[i]=array1[min]-array1[i];
            array1[min]=array1[min]-array1[i];

        }

    }
    console.log(array1);

执行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值