冒泡排序图解

image.png
冒泡排序的排序规则如下,第一位与第二位进行比较,当满足条件进行位置交换。第二次 第二位于第三位进行比较,满足条件进行位置交换,直到最后一位

代码如下

  1. const arr = [4, 1, 5, 55, 4, 89, 10, 5, 1, 26,]
  2. /**
  3. * 比较之后是否需要进行交换
  4. * @param {Number} a 现在值
  5. * @param {Number} b 后一位值
  6. * return boolean
  7. */
  8. function compare(a, b) {
  9. if (b <= a) return true;
  10. else return false;
  11. }
  12. /**
  13. * 将数组中a 与 b 里的值进行交换
  14. * @param {Array} arr 数组
  15. * @param {number} a 现在值
  16. * @param {number} b 后一位的值
  17. */
  18. function exchange(arr, a, b) {
  19. let temp = arr[a];
  20. arr[a] = arr[b];
  21. arr[b] = temp;
  22. }
  23. /**
  24. * 冒泡排序
  25. * @param {Array} arr 需要排序的数组
  26. */
  27. function sort(arr) {
  28. for (let j = 0; j < arr.length; j++) {
  29. // 当前排序方式一大小排序,第一次循环中最大值会被换到最后,第一次就找到最大值,第二循环会找到第二大的值,依次往后
  30. for (let i = 0; i < arr.length - 1 - j ; i++) {
  31. if (compare(arr[i], arr[i + 1])) {
  32. exchange(arr, i, i + 1)
  33. }
  34. }
  35. }
  36. }
  37. sort(arr)
  38. console.log(arr)