冒泡排序 -- js实现

冒泡排序

        算法的名字由来是因为越小的元素会经由交换慢慢浮到数列的顶端

5 4 3 2 1

第一趟 : 4 3 2 1 5

第二趟 : 3 2 1 4 5

第三趟 : 2 1 3 4 5

第四趟 : 1 2 3 4 5

上述可见:5个元素,一共需要走4趟。

每一趟的交换次数:

        第一趟 : 交换4次        5 - 0 - 1

        第二趟 : 交换3次        5 - 1 - 1                

        第三趟 : 交换2次        5 - 2 - 1

        第四趟 : 交换1次        5 - 3  -1

由此可推出:

N 个元素, 一共需要走 N -1 趟。

每一趟的交换次数:

        第一趟 : 交换N-1次        N - 0 - 1

        第二趟 : 交换N-2次        N - 1 - 1                

        第三趟 : 交换N-3次        N - 2 - 1

        第四趟 : 交换N-4次        N - 3  -1

                               .

                               .

        第m趟 : 交换 N-m次        N - (m-1) - 1  

所以用JS来实现:

// 冒泡排序
var arr = [5,4,3,2,1]
// 外层循环管趟数
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 temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

  

猜你喜欢

转载自blog.csdn.net/qq_38499019/article/details/121482577
今日推荐