javascript - 按特定顺序对数组进行排序

标签 javascript arrays sorting

我一直在尝试找出解决此问题的方法,但似乎找不到正确的排序顺序。

说明:

编写一个程序,按以下方式对数字列表进行排序:

3,-2,1,0,-1,0,-2,1 => -2,-1,-2,0,0,3,1,1

'use strict';
let myNumbers = '3,-2,1,0,-1,0,-2,1';
// I receive the input as a string and split and map it into an array
let myNumbers = gets().split(',').map(Number);

我尝试按升序对所有低于零的整数应用 sort() 方法,并对上面的整数执行相反的操作,但这与预期输出中的顺序不完全一样。

我还尝试在将 sort() 应用于 0 后拼接第一个数组,然后重新排列拼接部分并将其连接起来。但是,这不适用于所有测试输入。

另一个例子: 3,-12,0,0,13,5,1,0,-2 => -12,-2,0,0,0,3,13,5,1

这个顺序的逻辑是什么?谢谢。

最佳答案

因为这听起来像是家庭作业问题或类似问题的解决方案,所以我会让您编写代码:)但我这样做的方式是在数组的一次迭代中,创建三个单独的数组:

  1. 负数
  2. 0秒
  3. 正数

将数组压在一起而不进行排序,你就得到了 O(N) 解决方案。

关于javascript - 按特定顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53892049/

相关文章:

javascript - 邀请 friend 后Facebook连接重定向

javascript - 如何为中心容器中的最后一个元素设置左对齐?

javascript - jquery 选择器查询分组 ors 和 ands

c - 数组值发生变化

java - 如何反转三角形锯齿状数组?

ruby-on-rails - 如何访问 ruby​​ 对象内数组内的哈希?

java - 读取文件时出现 NoSuchElementException

perl - 对键包含非字母数字字符的哈希进行排序

javascript - MDL 表检索数据检查值

java - 使用二维数组进行冒泡排序