Sorting SortedSet或任何集合,然后是Collections.sort()?
我需要一组元素。我只会添加新元素并遍历所有集合。我需要对元素进行排序。但我不需要任意访问,只需要这两个操作Sorting SortedSet或任何集合,然后是Collections.sort()?,sorting,Sorting,我需要一组元素。我只会添加新元素并遍历所有集合。我需要对元素进行排序。但我不需要任意访问,只需要这两个操作 更有效的方法是使用SortedSet,每个添加的元素都将被排序,或者使用集合,例如List,最后一次插入排序后,使用Collections.sort 请记住,迭代必须返回已排序的元素 谢谢 理论上,两种方法具有相同的复杂性: 插入n个元素,然后对列表进行排序 n * O(1) + O(n log(n)) = O(n log(n)) 在分类列表中插入n个元素 n * O(log(n)) =
更有效的方法是使用SortedSet,每个添加的元素都将被排序,或者使用集合,例如List,最后一次插入排序后,使用Collections.sort 请记住,迭代必须返回已排序的元素
谢谢 理论上,两种方法具有相同的复杂性: 插入n个元素,然后对列表进行排序
n * O(1) + O(n log(n)) = O(n log(n))
在分类列表中插入n个元素
n * O(log(n)) = O(n log(n))
Collections.sort的时间复杂度为nlogn,TreeSet的时间复杂度相同。不同之处在于,TreeSet在每次插入和移除时都有一个对所有元素进行排序的开销。因此,如果您希望在添加所有元素后迭代排序的集合,那么最好使用Collections.sort。
这还允许您使用链表,如果需要,链表允许重复元素。使用集合,例如列表,在最后一次插入排序之后,Collections.sort将是性能方面的最佳选项。