【问题标题】:Merge sort on a double linked list双链表上的合并排序
【发布时间】:2015-05-23 04:31:45
【问题描述】:

阅读对链表进行排序的好方法(除了分配数组和快速排序),看来合并排序是更好的方法之一。

见:Merge Sort a Linked List

当前关于此主题的问题没有具体到天气列表是单链接还是双链接。

我的问题是:

是否有利用双链表的改进的合并排序方法?

(或者使用与单个链表相同的方法并分配previous 链接只是为了确保列表保持有效)

【问题讨论】:

    标签: sorting linked-list language-agnostic mergesort


    【解决方案1】:

    据我所知,在对双链表执行合并排序时不会出现特殊的节省时间的技巧,但对单链表也不起作用。

    Mergesort 最初是为存储在磁带卷轴上的数据而开发的,这些数据只能在向前的方向上读取,而大多数标准的 Mergesort 实现只对元素进行前向传递。合并排序所需的两个主要操作是将输入分成两半(在单链表和双链表中都很难)和将元素重新合并在一起(在两种情况下基本相同)。因此,如果不做比标准归并排序更聪明的事情,我不希望有任何重大的加速。

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2011-08-15
      • 2020-09-18
      相关资源
      最近更新 更多