【发布时间】:2021-10-24 13:39:03
【问题描述】:
某些排序算法是否更适合对 ArrayList 进行排序,反之亦然与链表
【问题讨论】:
-
是的。我现在想不出一本好书来讨论这个问题,但至少如果你用谷歌搜索“排序算法数组或链表”,你会找到几页关于它的页面。
标签: sorting arraylist linked-list
某些排序算法是否更适合对 ArrayList 进行排序,反之亦然与链表
【问题讨论】:
标签: sorting arraylist linked-list
是的,对于数组,您可以使用快速排序或归并排序(在某些情况下是基数排序)。
对于链表,使用小(26 到 32)个列表(或可选的迭代器)数组的自底向上合并排序是最有效的,但由于大列表中的节点可能分散,因此每个节点访问可能涉及缓存未命中。通常,将列表复制到数组,进行基于数组的排序,然后从数组创建排序列表会更快。链表自下而上归并排序的维基伪代码:
https://en.wikipedia.org/wiki/Merge_sort#Bottom-up_implementation_using_lists
【讨论】: