冒泡排序是稳定排序,并不会修改两个相同元素的前后顺序,其原理是:
- 从当前元素起,向后依次比较每一对
相邻元素,若逆序则交换。- 对所有元素均重复以上步骤,直至最后一个元素
JS代码实现如下:
function bubbleSort(arr) {
for(let i = 0; i < arr.length - 1; i++) { /* 外循环为排序趟数,len个数进行len-1趟 */
for(let j = 0; j < arr.length - 1 - i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if(arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
let arr = [9, 56, 2, 0, 48, 63, 2, 9];
let arrSorted = bubbleSort(arr);