【发布时间】:2017-01-10 17:48:19
【问题描述】:
我需要为一个抽象游戏排序一个移动列表。移动列表是一个 int 类型的数组。每一步都需要数组中的九个元素,其中一个是我希望排序的得分值。
我看到 Java 有一个 java.util.Arrays.sort(int[]) 方法,但由于移动列表的多元素结构,我不明白这有什么用处。
我不想写冒泡排序,因为排序速度很关键。
java 是否有任何可以满足我的目的的快速排序功能?即用于以一个元素作为排序值对 int 数组中的多元素记录进行排序?
【问题讨论】:
-
为什么不创建一个名为
Move的对象,它拥有 9 个int属性,然后拥有它implementsComparable。然后你可以把你的Move对象放在List中并做Collections.sort(whatever 你叫你的列表); -
我虽然想使用对象,但被告知我会受到很大的性能影响。此应用程序的排序过程必须尽可能快。
-
我认为 CollinD 指出你应该工作。在二维数组中移动一行。
-
性能损失将非常小,您仍然存储通常相同数量的内存。老实说,代码的可读性无论如何都是>性能。如果您不得不返回或其他人需要重构您的代码,那么每个值的含义会更清楚,而不仅仅是在数组中排列任意的
ints。