【发布时间】:2013-07-10 19:54:01
【问题描述】:
如何对由空格分隔的字符串中的元素进行排序。我有以下字符串:
temp = abcd bcda gfre dfgre fwft efwe
//temp.size() gives 30
//after the sort temp should look like ie temp = abcd bcda dfgre efwe fwft gfre
我需要在最短的时间内对 temp 中的元素进行排序。请注意,我正在处理的 temp 的大小约为 10 的 7 次方。我忘了提到我已经尝试过 Collections。 sort 和 Array.sort 花费的时间比要求的要多。我需要的是比这更快的算法吗?
【问题讨论】:
-
嗯,你试过什么? (这里有两三个任务——拆分、排序和潜在的加入......)
-
将字符串拆分为单词,对单词数组进行排序。
-
您对要使用的排序算法有偏好吗?
-
我强烈推荐使用二进制列表。我们正在处理
String,它实现了Comparable。这将是一种对元素进行排序的简单方法。我会推荐的一件事是:public final class BinaryList<E extends Comparable<E>> {。 -
补充我之前的评论:为什么选择二分搜索算法?嗯,它会比
Arrays.sort()使用的优化。既然你有这么多元素,优化是关键。您想使用二进制搜索算法来查找元素所在的索引。