对链表进行排序 单链表排序时间复杂度最小的是哪种排序方法?

单链表排序时间复杂度最小的是哪种排序方法?快速排序的时间和空间复杂度较低时间复杂度O(nlog2n)空间复杂度O(1)堆排序的时间复杂度最低,但空间复杂度会增加O(logn)我想解释的另一点是,各种算

单链表排序时间复杂度最小的是哪种排序方法?

快速排序的时间和空间复杂度较低

时间复杂度O(nlog2n)空间复杂度O(1)

堆排序的时间复杂度最低,但空间复杂度会增加O(logn)

我想解释的另一点是,各种算法追求低时间复杂度必然导致空间的上升复杂度,对低空间复杂度的追求必然导致时间复杂度的增加

也就是说,没有一个算法的时间复杂度和空间复杂度是最低的,就像鱼与熊掌不能同时拥有它一样

因为它是一个单链表,我建议您使用快速排序代码以使其更简单。它将无法在互联网上搜索。我也可以提供它,如果你需要它

因为这是一个Java问题,这是经典的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为K,时间复杂度为nlogk