我的Bubblesort只能对数字进行排序。的JavaScript

时间:2018-08-16 16:18:21

标签: javascript sorting bubble-sort

我从今年夏天开始使用JavaScript。这是我的第一门编程语言,我在书的帮助下学习了它。现在,我编写了一个冒泡的代码,但它首先没有起作用。当我写的就像他们在书中写的一样时,它仍然没有用(我的浏览器(Chrome)永远加载了)。我试了一下,过了一会儿,我意识到它不能用字母。(在书中他们对名字进行了排序)。所以我整理了一些数字。过了一会儿,我意识到当没有'1'时,它不能对我的数组邻居进行排序。 对不起,英语不好,我不是母语人士。 (我翻译了变量,以便于阅读。)

var numbers = [3, 2, 1];
var letters = ["c", "b", "a"];

function bubbleSort(list) {
  do {
    var changed = false;
    for (var i = 0; i < list.length - 1; i++) {
      if (list[i] > [i + 1]) {
        remember = list[i];
        list[i] = list[i + 1];
        list[i + 1] = remember;
        changed = true;
      }
    }
  } while (changed == true);
  return list;
}

alert(bubbleSort(numbers));
alert(bubbleSort(letters));

如果有人在他的浏览器中对其进行测试,那就太好了,如果这个错误也出现在这里。如果发现任何错误,请与我联系:)。 谢谢

3 个答案:

答案 0 :(得分:0)

您唯一的问题似乎是这样:

if (list[i] > [i + 1])

应该是:

if (list[i] > list[i + 1])

那使算法无法为我挂起,并且似乎也可以正确排序。

答案 1 :(得分:-1)

尝试使用js中的默认排序功能。

var numbers = [3, 2, 1];
var letters = ["c", "b", "a"];
alert(numbers.sort());
alert(letters.sort());

答案 2 :(得分:-3)

对每个要排序的字符串使用.charCodeAt(array location)方法。