首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我的Bubblesort只能对数字进行排序。JavaScript

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

Stack Overflow用户
提问于 2018-08-17 00:18:21
回答 3查看 77关注 0票数 -3

今年夏天,我开始在JavaScript工作。这是我的第一门编程语言,我是在一本书的帮助下学会的。现在我编写了一个冒泡排序,但它没有首先工作。正如我在书中写的一样,它仍然不能工作(我的浏览器(Chrome)永远加载)。我试了一下,过了一段时间,我意识到它不适用于字母。(在书中,他们对名字进行了排序)。所以我整理了一些数字。过了一段时间,我意识到当没有'1‘时,它不能对我的数组进行排序。对不起,我的英语不好,我不是以英语为母语的。(我翻译了变量以便更容易阅读)。

代码语言:javascript
复制
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也出现在那里,那就太好了。如果您发现任何错误,请与我联系:)。谢谢

EN

回答 3

Stack Overflow用户

发布于 2018-08-17 03:30:41

你唯一的问题似乎是:

代码语言:javascript
复制
if (list[i] > [i + 1])

应该是:

代码语言:javascript
复制
if (list[i] > list[i + 1])

这让算法不再为我挂起,而且似乎也可以正确排序。

票数 0
EN

Stack Overflow用户

发布于 2018-08-17 00:32:21

尝试js中的默认排序函数。

代码语言:javascript
复制
var numbers = [3, 2, 1];
var letters = ["c", "b", "a"];
alert(numbers.sort());
alert(letters.sort());
票数 -1
EN

Stack Overflow用户

发布于 2018-08-17 00:24:30

对每个字符串使用.charCodeAt(数组位置)方法进行排序。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51881449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档