十大排序 --冒泡排序(一个一个换位置)

60 阅读1分钟
    //数组中值从小到大排序
    var arr = [8,5,3,2,1] ;
    console.log(arr);

    //思路 
    //第一轮  拿到最大值放在最后面
    //8 5   5 8 3 2 1 
    //8 3   5 3 8 2 1
    //8 2   5 3 2 8 1
    //8 1   5 3 2 1 8

    // 第二轮 拿到第二大的值放在倒数第二个
    // 5 3  3 5 2 1 8
    // 5 2  3 2 5 1 8
    // 5 1  3 2 1 5 8 
    // 5 8  3 2 1 5 8   多余一次

    // 第三轮
    // 3 2  2 3 1 5 8
    // 3 1  2 1 3 5 8 
    // 3 5              多余两次
    // 5 8  

    // 第四轮出结果
    // 2 1  1 2 3 5 8
    //                  多余三次
    // 

    //比较的轮数  12行var
    for (var i = 0 ; i < arr.length - 1 ; i++){
        //每两个相邻的值作比较(大的向后交换)
        for (var j = 0 ; j < arr.length-i-1;j++){
            if(arr[j] < arr[j + 1]){
                var t = arr[j+1] ;
                arr[j+1] = arr[j];
                arr[j] = t ;
                
            }
        }
        console.log(arr);
    }
    console.log(arr);
    
    

image.png