我从今年夏天开始使用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));
如果有人在他的浏览器中对其进行测试,那就太好了,如果这个错误也出现在这里。如果发现任何错误,请与我联系:)。 谢谢
答案 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)方法。