Skip to content

Files

Latest commit

3f7fd2f · Aug 31, 2021

History

History
67 lines (30 loc) · 1.52 KB

1.BubblingSort.md

File metadata and controls

67 lines (30 loc) · 1.52 KB

冒泡排序

冒泡排序(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;
	}