51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

JavaScript:冒泡排序

概念

冒泡排序:是一种简单的排序算法,它重复地走访过要排序的数列,依次比较俩个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

简而言之就是把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)。

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

案例

我们可以将数组[5,4,3,2,1]中的元素按照从小到大的顺序排序,输出:1,2,3,4,5

分析

1.一共需要的趟数,我们用外层for循环

  • 5个数据我们一共要走4躺
  • 长度就是数组长度减去1 arr.length - 1

2.每一趟交换次数,我们用里层for循环

  • 第一趟,交换4次
  • 第二趟,交换3次
  • 第三趟,交换2次
  • 第四躺,交换1次
  • 长度就是数组长度 减去 次数
  • 但是我们次数是从0开始的,所以最终 arr.length - i - 1

3.交换俩个变量就好了

代码

    var arr = [5, 4, 3, 2, 1];
    for (var i = 0; i <= arr.length; i++) { //外层循环--趟数
        for (var j = 0; j <= arr.length - i - 1; j++) { //里层循环--每一趟的交换次数
            //内部交换2个变量的值,前一个和后面一个数组元素相比较
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;

            }
        }
    }
    console.log(arr);
赞(4)
未经允许不得转载:工具盒子 » JavaScript:冒泡排序