今年夏天,我开始在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));
如果有人在他的浏览器中测试它,如果这个bug也出现在那里,那就太好了。如果您发现任何错误,请与我联系:)。谢谢
发布于 2018-08-17 03:30:41
你唯一的问题似乎是:
if (list[i] > [i + 1])
应该是:
if (list[i] > list[i + 1])
这让算法不再为我挂起,而且似乎也可以正确排序。
发布于 2018-08-17 00:32:21
尝试js中的默认排序函数。
var numbers = [3, 2, 1];
var letters = ["c", "b", "a"];
alert(numbers.sort());
alert(letters.sort());
发布于 2018-08-17 00:24:30
对每个字符串使用.charCodeAt(数组位置)方法进行排序。
https://stackoverflow.com/questions/51881449
复制相似问题