Javascript:冒泡排序

标签 javascript algorithm sorting bubble-sort

我用JS做了一个冒泡排序算法(sorta)。它有时会起作用,但问题是它只遍历数组一次。这是我的代码:

function bubble(arr) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] > arr[i + 1]) {
      var a = arr[i]
      var b = arr[i + 1]
      arr[i] = b
      arr[i + 1] = a
    }
  }
  return arr;
}

最佳答案

另一个冒泡排序实现:

const bubbleSort = array => {
  const arr = Array.from(array); // avoid side effects
  for (let i = 1; i < arr.length; i++) {
    for (let j = 0; j < arr.length - i; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
};

关于Javascript:冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37817334/

相关文章:

javascript - 展开/折叠 Shiny 的 selectInput 函数

c - 在 C 中对字符串数组使用 qsort

c - 使用 if-else 对 3 个值进行排序的最有效的 C 程序是什么?

arrays - 通过删除最小数量的元素,将给定的整数数组转换为排序数组

javascript - 返回 HTML 元素的 HTML 代码

javascript - 模态显示<br>下一行的瞬间

javascript - 用空格和破折号分割字符串

algorithm - 计算单词之间的语义距离

php - 如何使用数组函数合并 php 中的内部数组元素?

algorithm - 打印数组的所有产品组合