冒泡排序详解

冒泡排序(Bubbling Sort)是一种比较直观的排序方式。数组中的元素大小就像就像水中的气泡一样,气泡大的先浮出来,气泡大的会放到数组最后。冒泡排序比较相邻的两个元素,如果数组坐标小的的元素A大于坐标大的元素B,交换两元素,循环重复上述对比交换工作,直到数组排序完成。

冒泡排序有一种情况说明该数组已经是有序数组,在第一趟遍历中元素没有发生交换,则说明该序列已经有序。

1.算法步骤

  1. 从数组的第一个元素开始,依次比较相邻的元素,如果数组坐标小的元素A大于数组坐标大的元素B,交换这两个元素的位置。
  2. 数组执行一遍后,最后的元素是最大的元素。
  3. 对数组重复步骤1、步骤2的操作,除了上一次遍历出的最后一个元素。
  4. 持续执行上述步骤,直到没有任何元素需要比较。数组排序完成

2.算法演示流程

Bubbling Sort

3.实现代码


                function bubblingSort(arr){
                    var len = arr.length;
                    for(var i = 0; i < len - 1; i++){
                        for(var j = 0; j < len - 1 - i; j++){
                            // 避免 第一个循环 出现数组访问越界问题
                            if (j == len - 1) {
                                continue;
                            }

                            if (arr[j] > arr[j + 1]) {
                                var tempV = arr[j+1];
                                arr[j+1] = arr[j];
                                arr[j] = tempV;
                            }
                        }
                    }
                    return arr;
                }