使用自定义排序规则对int(非整数)数组进行排序

时间:2012-12-22 16:23:14

标签: java android

我需要使用自定义排序规则对大约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

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

1 个答案:

答案 0 :(得分:1)

我认为唯一的方法是在数组上为elementar数据类型 int 实现排序算法。 Java库不为每个elementar数据类型提供版本。拳击/拆箱就是答案。

我只是为这种特殊需要实现排序算法。 (如果速度真的那么重要) 使用快速排序进行内部排序非常容易实现quicksort (wikipedia)