js数组冒泡排序

こ雲淡風輕ζ 提交于 2019-11-27 15:10:40

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);

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!