用js写一个高级的冒泡排序,并写好注释
时间: 2023-03-15 15:21:06 浏览: 61
我可以提供一段JS代码来实现高级冒泡排序,并附上相应的注释:/* 定义高级冒泡排序函数 */
function advancedBubbleSort(arr){
// 定义排序完成标志
let isSorted = false;
// 定义最后一次交换位置的标记
let lastExchangeIndex = 0;
// 定义无序数列的边界,每次比较只需要比到这里为止
let sortBorder = arr.length - 1;
for (let i = 0; i < arr.length; i++) {
// 假设排序完成
isSorted = true;
for (let j = 0; j < sortBorder; j++) {
// 如果顺序不对
if (arr[j] > arr[j + 1]) {
// 交换位置
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// 更新最后一次交换的位置
lastExchangeIndex = j;
// 假设没有排序完成
isSorted = false;
}
}
// 更新无序数列边界
sortBorder = lastExchangeIndex;
// 如果排序完成,就直接跳出循环
if (isSorted) {
break;
}
}
return arr;
}