js数组冒泡排序

js数组的冒泡排序是最经典的一种排序方式(我以为)。

冒泡排序是吧一组数组的元素两两比较,交换位置,通过多轮比较,实现从大到小或者从小到大的排序。

    var arr = [1,0,5,6,3,9,22,49,20,11,78,9];
    // 创建一个新数组
    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]){
                // 判断每一次比较的时候,两个数字的大小
                // arr[j]是第j个元素
                // arr[j+1]是第j+1 个元素               
                //如果j > j + 1, 把j 和j+i交换,也就是把相对大的值往后排序 也就是从小到大排序
                //如果j < j + 1, 把相对小的值往后排 也就是从大到小排序

                var temp = arr[j]; 
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                // 利用第三方变量交换j 和j + 1 的值
            }
        }
    }
    console.log(arr);

猜你喜欢

转载自www.cnblogs.com/sandraryan/p/11367870.html