阅读排序链表的好方法(除了分配数组和快速排序),看起来mergesort是更好的方法之一。
关于这个主题的当前问题是非特定的,因为天气列表是单链接或双链接。
我的问题是:
是否有利用双链表的改进合并排序方法?
(或者使用与单个链接列表相同的方法并仅指定previous
链接以确保列表仍然有效)
答案 0 :(得分:1)
据我所知,在双链表上进行mergesort时,没有特殊的节省时间的技巧,这些技巧也不适用于单链表。
Mergesort最初是为存储在磁带卷上的数据而开发的,只能向前读取,而mergesort的大多数标准实现只能在元素上进行转发。 mergesort所需的两个主要操作是将输入分成两半(在单链和双链表中都很难)并将元素合并在一起(在两种情况下基本相同)。因此,如果不做一些比标准合并更聪明的事情,我不会指望有任何重大的加速。