下列哪种排序算法可用于以最小的时间复杂度对随机链表进行排序?
(A)插入排序
(B)快速排序
(C)堆排序
(D)合并排序答案: (D)
说明:合并排序和插入排序均可用于链接列表。
链表的随机访问性能较慢,使得其他算法(例如quicksort)的性能较差,而其他算法(例如堆排序)则完全不可能。
由于合并排序的最坏情况时间复杂度为O(nLogn),插入排序为O(n ^ 2),因此首选合并排序。
有关使用链接列表进行合并排序的实现,请参见以下内容。
https://www.geeksforgeeks.org/merge-sort-for-linked-list/
这个问题的测验