美文网首页JavaScript 进阶营深究JavaScript
JavaScript数组_冒泡排序(二十八)

JavaScript数组_冒泡排序(二十八)

作者: 终身成长人格 | 来源:发表于2019-12-08 19:53 被阅读0次

思路:

将数组元素从下标为0与下标为1,arr[i]与arr[i+1]逐次开始两两比较arr.length-r-1,共进行arr.length-1轮,每一轮比较后将排出一位最大值。

先声明外循环轮数 r的区间范围是,应该是从第一次开始,比元素个数arr.length少一次

每轮arr[i]与arr[i+1]两两逐次比较,比较完第一轮后,将把数组最大的元素排在最后

第二轮比较的时候,就不需要再去重复比较第一轮排出的下标为arr.length-1的最大的元素,排的是第二大的元素

因为arr[i]与arr[i+1]做比较,要保证下标i+1是最大下标,所以i<arr.length-2,

根据循环轮数r,与i的规律,每循环一轮,将排好一位元素,且再一轮就不需要重复排已经排好队的,依次类推,每次排好一轮之后,将arr.length-1。

具体代码

//所以将下标i的区间范围在i<arr.length-r
 for(var r=1;r<arr.length;r++){  
//根据循环轮数r,与i的规律,每循环一轮,将排好一位元素,且再一轮就不需要重复排已经排好队的,依次类推,每次排好一轮之后,将arr.length-r
    for(var i=0;i<arr.length-r;i++){                  
        if(arr[i]>arr[i+1]){                         

        var temp;              //满足条件,两两交换位置                           
        temp=arr[i];            //不满足则跳出后,保持不变继续下一轮
        arr[i]=arr[i+1];
        arr[i+1]=temp;                      
        }                                       
    }
 }  console.log(arr)    
}

下节预告:字符串_创建_length

参考视频教程:https://www.3mooc.com/front/couinfo/228

相关文章

网友评论

    本文标题:JavaScript数组_冒泡排序(二十八)

    本文链接:https://www.haomeiwen.com/subject/gitvgctx.html