帮我写一个冒泡排序使用js把他优化一下
以下是冒泡排序的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/J6k 著作权归作者所有。请勿转载和采集!