|
44
|
| Benedikt Waldvogel assylias · 技术社区 · 17 年前 |
|
|
1
16
Java Primitive 包括基于自定义比较器对基元数组排序的功能。使用它和Java 8,您的示例可以写成:
如果您使用的是Maven,您可以将其包括在:
当你通过
完全公开:我编写了Java原始库。 |
|
2
14
我认为最好不要重新发明轮子并使用array.sort()。 是的,我看到了“下降”部分。排序是最难的部分,您希望从Java代码库的简单性和速度中受益。完成后,只需反转数组,这是一个相对便宜的O(N)操作。 Here's some code 我发现这样做只需要4行:
|
|
3
8
Guava
具有将基元数组转换为包装类型列表的方法。好的方面是,这些列表是活动视图,因此对它们的操作也适用于底层数组(类似于
不管怎样,每个列表都可以传递给
输出:
|
|
4
4
… 默认情况下,顺序为升序 颠倒顺序
|
|
|
5
2
我认为最简单的解决方案仍然是:
正如前面其他人所说:使用tolist是额外的工作,array.sort(array,collections.reverseorder())不适用于原语,并且当您所需要的一切都已在构建中时,使用额外的框架显得过于复杂,因此也可能更快… 样例代码:
|
|
|
6
1
您的实现(问题中的实现)比(例如)包装
当然你可以自己写。这可能不是你想要的答案,
但是
请注意,如果您对“如果数组已经排序得很好”的评论频繁出现,那么您最好选择一种处理该情况的排序算法(例如插入),而不是使用
|
|
|
7
1
关于
然后您将得到一个包含1个元素的列表。结果列表将double[]数组作为自己的元素。你想要的是
不幸的是,涉及比较器的任何解决方案都不能用于原始数组。
因此,尽管我之前的回答是下面的注释所引用的,但没有比排序后手动反转数组更好的方法了。任何其他方法(例如将元素复制到
|
|
|
8
1
不能使用比较器对基元数组进行排序。 您最好的选择是实现(或借用实现)排序算法,即 appropriate 让您的用例对数组进行排序(在您的用例中按相反的顺序)。 |
|
|
9
1
对于数字类型,否定排序前后的元素似乎是一种选择。排序后相对于单个反转的速度取决于缓存,如果反转不快,任何差异都很可能在噪声中丢失。 |
|
|
10
1
然后使用数组。排序(arr),然后再次将每个元素乘以-1
|
|
|
11
0
我不知道Java核心API中的任何原始排序工具。 从我的实验中 D programming language (类似于类固醇的C语言),我发现合并排序算法可以说是最快的通用排序算法(D语言本身就是用它来实现排序函数的)。 |
|
|
12
0
如果性能很重要,而且列表通常已经被很好地排序了。 气泡排序应该是最慢的排序方式之一,但我已经看到过这样的情况:最好的性能是简单的双向气泡排序。 因此,这可能是少数几个可以从自己编写代码中获益的情况之一。但你真的需要做对(确保至少有人确认你的代码,证明它有效等等)。 正如其他人指出的那样,最好从已排序的数组开始,并在更改内容时保持排序。这可能会表现得更好。 |
|
|
13
0
对于小型阵列,这可能有效。
我很惊讶阵列B的初始加载是必要的
|
|
|
14
0
你的算法是正确的。但是我们可以做如下优化: 在反转时,您可以尝试保留另一个变量来减少自数组计算以来的反向计数器。长度(i+1)可能需要一些时间! 同时将临时声明移出,这样每次都不需要分配临时声明。
|
|
|
15
0
如果使用Java8,只需将数组转换为流,排序并转换回。 所有的任务都可以在一行中完成,所以我觉得这样做还不错。
|
|
|
16
0
下面是我的解决方案,您可以根据自己的需要进行调整。 它是如何工作的?它采用整数数组作为参数。之后,它将创建一个新的数组,该数组将包含与参数中的数组相同的值。这样做的原因是保持原始数组的完整性。 一旦新数组包含复制的数据,我们就通过交换值对其进行排序,直到条件 如果(newarr[i]<newarr[i+1]) 计算结果为false。这意味着数组按降序排序。 详细解释请查看我的博客帖子 here .
|
|
|
17
0
了解这是一篇非常古老的文章,但我在尝试对原始int数组排序时遇到了类似的问题,所以发布了我的解决方案。建议/评论欢迎-
|
|
|
18
0
|
|
|
19
-1
collections.reverseorder()不处理基元,但double、integer等处理collections.reverseorder()。 |
|
|
20
-1
在Java 8中,更好和更简洁的方法可以是:
这将提供反向数组,并且更具可显示性。 输入:【13.6、7.2、6.02、45.8、21.09、9.12、2.53、100.4】 输出:【100.4、45.8、21.09、13.6、9.12、7.2、6.02、2.53】 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |