function bubbleSort(nums){
let len = nums.length;
let flag = true;
for (let i = 0; i < len && flag; i++) {
flag = false;
for (let j = 0; j < len - i - 1; j++){
if (nums[j] > nums[j+1]){
let swap = nums[j];
nums[j] = nums[j+1];
nums[j+1] = swap;
flag = true;
}
}
}
return nums;
}
console.log(bubbleSort([1, 5, 3, 4, 6, 12, 3]));
**最好的情况:**加入flag判断后面是否有序,如果有序后面就不用交换了。此时复杂度就是O(n)
本文介绍了一种优化的冒泡排序算法实现,并通过添加标志位判断来减少不必要的比较次数,从而提升排序效率。最佳情况下,当输入数组已部分或完全有序时,此优化能显著降低时间复杂度。
3250

被折叠的 条评论
为什么被折叠?



