0

我需要使用自定义排序规则对大约 100000 个整数进行排序。如果我使用 Comparator,我需要一个数组 Integer 实例,它创建速度较慢,排序速度较慢并且占用更多内存。

在装有 Android 4.2 的 Galaxy Nexus 上进行快速基准测试:

createIntArrayAndFillWith1to100000; // 18 ms
createIntegerArrayAndFillWith1to100000; // 191 ms (using Integer.valueOf(i))
Arrays.sort(randomInts); // 354 ms
Arrays.sort(randomIntegers, simpleComparator); // 1734 ms

实施自定义排序是我的最佳选择吗?

4

1 回答 1

1

我认为唯一的方法是自己对元素数据类型int的数组实现排序算法。Java 库不提供每个基本数据类型的版本。装箱/拆箱就是答案。

我会简单地为这种特殊需要实现一个排序算法。(如果速度真的如此重要)使用快速排序的就地排序很容易实现快速排序(维基百科)

于 2012-12-22T16:30:30.753 回答