什么更快:插入优先级队列,还是追溯排序?
我正在生成一些我需要在最后排序的项目.我想知道,在复杂性方面更快的是:将它们直接插入priority_queue或类似的数据结构中,还是在结尾处使用排序算法?
在PriorityQueue的构造函数中,我们可以传入一个像List或Set这样的集合,在线性时间内构建PriorityQueue。但是,这也意味着 PriorityQueue 将使用默认的 Comparator。
我想使用自己的比较器,因此除了最小堆之外,我还可以拥有其他东西。我能想到的唯一方法是将集合包装在 SortedSet 中并在其中放置一个自定义比较器。
有没有其他好的方法来做到这一点?
我的文件中有一百万行。从每一行创建一个对象并将其添加到集合中。compareTo()必须使用类的自定义方法对集合进行排序。
目前我ArrayList按照阅读顺序将对象添加到 an 中,然后执行Collections.sort().
制作 TreeSet 会更快吗?