【问题标题】:Array Sorting not working in JS数组排序在 JS 中不起作用
【发布时间】:2016-11-29 12:28:12
【问题描述】:

我有这样的数组 值 = [250, 200, 300, 150, 300]

我使用这个代码。

        for (var j = 0; j < value.length - 1; j += 1)
        {
            if (value[j] > value[j + 1])
            {
                var temp = value[j + 1];
                value[j + 1] = value[j];
                value[j] = temp;
            }
        }

但是,它不起作用。结果 value = [200, 250, 150, 300, 300]

我想在不使用内置函数的情况下实现这一点。

【问题讨论】:

标签: javascript arrays sorting bubble-sort


【解决方案1】:

使用下面的代码。

var value = [250, 200, 300, 150, 300];

for (var i = 0; i < value.length; i++) {
  var swapped = false
  for (var j = 0; j < value.length; j++) {
    if (value[j] > value[j + 1]) {
      temp = value[j + 1];
      value[j + 1] = value[j];
      value[j] = temp;
      swapped = true;
    }
  }
  if (!swapped) {
    break;
  }
}
console.log(value)

【讨论】:

  • 请解释您的尝试。仅仅放置工作代码是不够的
  • 它需要冒泡排序算法中定义的 2 个循环来并行检查算法 tutorialspoint.com/data_structures_algorithms/… 中定义的每个通过
  • 我知道冒泡排序算法。我的意思是,在你的答案中解释你的尝试,这样如果没有足够知识的人阅读你的答案,他就会明白发生了什么。
【解决方案2】:

你应该有两个循环,一个在另一个里面对数组进行排序

value = [250, 200, 300, 150, 300]
for (var i = 0; i < value.length; i++)
  for (var j = i; j < value.length - 1; j++) {
    if (value[i] > value[j]) {
      var temp = value[j];
      value[j] = value[i];
      value[i] = temp;
    }
  }

console.log(value)

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多