冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换它们。元素项向上移动至正确的顺序,就好像气泡升至表面一样,冒泡排序因此得名。
冒泡排序的过程:冒泡排序就是每一轮循环是比较 index 与 index + 1 这两个元素,将较大的元素移去右边。一轮之后,由于最右边的元素已经是最大的了,所以下一轮就不用跟它对比了,下一轮循环的次数就减少一次。然后继续重复之前的步骤。

以下为冒泡排序的实现:
/*** 数组中交换两个元素位置* @param {array} array* @param {number} leftIndex* @param {number} rightIndex*/function swap(array, leftIndex, rightIndex) {let rightValue = array[rightIndex]array[rightIndex] = array[leftIndex]array[leftIndex] = rightValue}/*** 对数组进行冒泡排序* @param {array} arr*/const bubble = (arr) => {for (let i = arr.length - 1; i > 0; i--) {for (let j = 0; j < i; j++) {if (arr[j] > arr[j+1]) swap(arr, j, j+1)}}return arr}
最外面的循环用来控制要冒泡多少次,而里面的循环,用来控制冒泡的边界。
时间复杂度: 。
