用javascript写一段改进版的冒泡排序
时间: 2023-08-26 13:26:20 浏览: 82
好的,以下是改进版的冒泡排序JavaScript代码:
```javascript
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
var flag = true; // 设置标志位,如果当前轮次没有交换过元素,则说明已经排序完成,可以提前终止循环
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false; // 有交换,标志位设为 false
}
}
if (flag) break; // 如果当前轮次没有交换过元素,则说明已经排序完成,可以提前终止循环
}
return arr;
}
// 测试
var arr = [3, 1, 4, 2, 5];
console.log(bubbleSort(arr)); // [1, 2, 3, 4, 5]
```
在原始冒泡排序算法的基础上,改进版的冒泡排序增加了一个标志位,当当前轮次没有交换过元素时,说明已经排好序,可以提前终止循环,从而减小了无效比较的次数,提高了算法效率。
阅读全文