javascript冒泡排序

冒泡排序

冒泡排序

  • 概念:针对数字类型数组的入门排序算法,其他排序算法,比如选择排序,插入排序,快速排序等等

  • 主要原理:整个冒泡排序过程分为多次排序,每次排序会将未排序的数据通过两个相邻的数据进行对比,将值大的放在后面。可以将实现本次未被排序中最大值放在未排序数据的最后

  • 流程:

    • 每次排序过程是将未排序的数据的最大值排在未排序数据的最后
    • 单次排序过程是从数组的开头第一个数据开始进行对比,依次进行相邻的两个数进行对比,就是将最大的数进行交换,放在后面和下个数据进行对比。一直对比未排序的数据的末尾,将最大的数据排在未排序的数据最后
  • 具体流程:

    var arr = [54,12,23,45,11]
    var i ;代表排序的次数
    第1次排序,将54放在数组的最后      i = 1   arr.length-i     4
    1.5412进行对比,54>12,两者交换位置------[12,54,23,45,11]
    2.5423进行对比,54>23  两者交换位置------[12,23,54,45,11]
    2.5445进行对比,54>45  两者交换位置------[12,23,45,54,11]
    3.5411进行对比,54>11  两者交换位置------[12,23,45,11,54]
       结束
       第2次排序,将45放在数组的最后    i = 2     arr.length-i   3
     1.1223进行对比,  12<23 两者不交换位置------[12,23,45,11,54]
     2.2345进行对比,  23<45 两者不交换位置------[12,23,45,11,54]
     3.4511进行对比    45>11 两者交换位置------[12,23,11,45,54]   
       结束
       第3次排序,将23放在数组的最后     i = 3   arr.length-i   2
     1.1223进行对比,  12<23 两者不交换位置------[12,23,11,45,54]
     2.2345进行对比,  23>11 两者不交换位置------[12,11,23,45,54]
       结束
       第`length-1`次排序,将12放在数组的最后    i = 4  arr.length-i   arr.leng-(arr.length-1)=1 
     1.1211进行对比,12>11,两者交换位置------[11,12,23,45,54]
       结束
    
    
    
  • 实例

      var arr = [54,12,45,52,11];
            //外层for:代表第几次排序
            for( var i = 0;i <= arr.length-1;i++){
                // console.log(i);
                //每次排序的过程
                //内层for循环:在第i次排序过程中,对比第几次,对比次数。
                //第一次对比,下标为0
                for(var j = 0;j <arr.length-i-1 ;j++ ){
                    if( arr[j] > arr[j+1]){
    
                        //交换位置
                        var temp = arr[j+1] ;
                         arr[j+1] = arr[j]
                         arr[j] = temp
                 
                    }
    
                }
    
    
                
            }console.log(arr);
    
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值