【问题标题】:Using mergesort for list对列表使用归并排序
【发布时间】:2014-06-19 16:34:59
【问题描述】:

合并排序可以就地完成列表;不像数组。
但是,我还没有找到解释如何实现的参考。
任何指针表示赞赏。

【问题讨论】:

  • 这个问题有几个很好的答案:stackoverflow.com/q/2571049
  • 您的意思是 链表 吗? (数组也是列表)
  • Merge Sort a Linked List的可能重复
  • 您做过任何研究吗?在 Google 中输入“合并排序链表”提供了很多很好的例子。

标签: algorithm sorting mergesort


【解决方案1】:

实际上有可能实现数组的就地合并排序,但并不简单。使用链表,问题变得非常简单。链表中的每个节点只有一个值和一个指向下一个节点的指针。将链表分成两半非常简单。只需遍历中间节点,将其后继节点作为第二个列表的头部,然后将后继节点设置为 null。

合并步骤的工作方式与您预期的一样。不要创建任何新节点,只需重新链接两个列表中的节点即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2014-12-11
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多