【发布时间】:2015-05-23 04:31:45
【问题描述】:
阅读对链表进行排序的好方法(除了分配数组和快速排序),看来合并排序是更好的方法之一。
当前关于此主题的问题没有具体到天气列表是单链接还是双链接。
我的问题是:
是否有利用双链表的改进的合并排序方法?
(或者使用与单个链表相同的方法并分配previous 链接只是为了确保列表保持有效)
【问题讨论】:
标签: sorting linked-list language-agnostic mergesort
阅读对链表进行排序的好方法(除了分配数组和快速排序),看来合并排序是更好的方法之一。
当前关于此主题的问题没有具体到天气列表是单链接还是双链接。
我的问题是:
是否有利用双链表的改进的合并排序方法?
(或者使用与单个链表相同的方法并分配previous 链接只是为了确保列表保持有效)
【问题讨论】:
标签: sorting linked-list language-agnostic mergesort
据我所知,在对双链表执行合并排序时不会出现特殊的节省时间的技巧,但对单链表也不起作用。
Mergesort 最初是为存储在磁带卷轴上的数据而开发的,这些数据只能在向前的方向上读取,而大多数标准的 Mergesort 实现只对元素进行前向传递。合并排序所需的两个主要操作是将输入分成两半(在单链表和双链表中都很难)和将元素重新合并在一起(在两种情况下基本相同)。因此,如果不做比标准归并排序更聪明的事情,我不希望有任何重大的加速。
【讨论】: