【问题标题】:When sorting a list, Should the type of list used determine which sorting algorithm to choose排序列表时,使用的列表类型是否决定选择哪种排序算法
【发布时间】:2021-10-24 13:39:03
【问题描述】:

某些排序算法是否更适合对 ArrayList 进行排序,反之亦然与链表

【问题讨论】:

  • 是的。我现在想不出一本好书来讨论这个问题,但至少如果你用谷歌搜索“排序算法数组或链表”,你会找到几页关于它的页面。

标签: sorting arraylist linked-list


【解决方案1】:

是的,对于数组,您可以使用快速排序或归并排序(在某些情况下是基数排序)。

对于链表,使用小(26 到 32)个列表(或可选的迭代器)数组的自底向上合并排序是最有效的,但由于大列表中的节点可能分散,因此每个节点访问可能涉及缓存未命中。通常,将列表复制到数组,进行基于数组的排序,然后从数组创建排序列表会更快。链表自下而上归并排序的维基伪代码:

https://en.wikipedia.org/wiki/Merge_sort#Bottom-up_implementation_using_lists

【讨论】:

  • 这不能回答问题。
  • @trincot - 错过了一次编辑。答案已更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
相关资源
最近更新 更多