【发布时间】:2018-07-26 13:23:27
【问题描述】:
如果之前已经回答过这个问题,请指出正确的方向!
所以,在阅读有关排序的信息时,我已经在 SO 上闲逛了一段时间。然而,我想知道,为单链表和双链表(以及与数组结构相比,链接结构)选择一个好的排序算法之间的主要区别是什么?
我知道(假设我们使用 OO 语言)类型对要排序的元素等很重要(原始类型通常比复杂对象快)。我在比较 Java 字符串和整数。
据我了解,在处理链接结构时,我们可能应该排除快速排序和插入排序,因为它们涉及到很多索引。
这个问题可能很糟糕,但正如我所提到的,请指出我可以阅读有关选择正确算法的另一个来源(不是如何实现算法)。
【问题讨论】:
-
在你的鞋子里,我会分析已经用 JDK 编写的排序(各种排序)方法的代码。
-
我们不能替代 Google。我们不会将人们指向来源。
-
在What's the fastest algorithm for sorting a linked list 中的一个答案的更新中链接到bottom up merge sort 对列表进行排序是最快的(除非您复制到数组,对数组进行排序,创建一个新列表,这还是更快)。只需对列表进行排序,就好像它是一个单链表,然后进行一次传递以设置先前的指针。