文章 评论 浏览 30
```js function bubbleSort(arr) { for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } console.log(arr); } // 改进冒泡排序 function bubbleSort1(arr) { let i = arr.length - 1; while (i > 0) { let pos = 0; for (let j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { pos = j; const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } i = pos; } console.log(arr); }@guokangf 这个改良算法能解释一下吗?每次最大值放到最右后,会将本轮最后一个操作的位置作为下一轮的终点,可以减少不必要的一些冒泡
```js function bubbleSort(arr) { for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } console.log(arr); } // 改进冒泡排序 function bubbleSort1(arr) { let i = arr.length - 1; while (i > 0) { let pos = 0; for (let j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { pos = j; const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } i = pos; } console.log(arr); }
@guokangf 这个改良算法能解释一下吗?
每次最大值放到最右后,会将本轮最后一个操作的位置作为下一轮的终点,可以减少不必要的一些冒泡
标准实现中的 j < arr.length - i - 1; 循环条件不已经达到这个目的了吗??
文章 0 评论 0
接受
标准实现中的 j < arr.length - i - 1; 循环条件不已经达到这个目的了吗??
第 54 题:冒泡排序如何实现,时间复杂度是多少, 还可以如何改进?