JavaScript 冒泡排序算法实现及优化
以下是冒泡排序的 Javascript 实现:
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
如何优化冒泡排序?
-
设置标志位 在每次遍历时,如果没有任何元素需要交换,则说明已经排好序,可以直接结束排序。
-
减少遍历次数 在每次遍历时,如果发现某个位置已经排好序,则下一次遍历就可以减少一次。
以下是优化后的冒泡排序的 Javascript 实现:
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
var flag = false; // 设置标志位
for (var j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag) break; // 如果没有交换,则已经排好序,直接结束排序
}
return arr;
}
原文地址: https://www.cveoy.top/t/topic/l1kD 著作权归作者所有。请勿转载和采集!