摘要:
这个题目要求在时间复杂度O(nLogn)、空间复杂度O(1)内,对单链表进行排序。常见的满足这两项要求的排序算法就是归并排序和快排。我先尝试了快排,由于在单链表中实现随机选择哨兵项A[r]不够方便,我令每组最后一个数据项为A[r](参考算法导论实现),这样做对于一般的数据应该没有问题,但对于特殊设计... 阅读全文
摘要:
今天上午在K一道单链表排序题(目前LeetCode第四题),利用快速排序实现的版本过不了时间限制,不排除我实现中优化做得不够。Partition的算法和我在这篇blogC++实现的快速排序中使用的算法是类似的,都是参考自算法导论。虽然提交LeetCode的题目超时了,但是这个代码可以留作参考。至于题... 阅读全文