这个比较恶心,最好使用插入排序的方式,效率稍微高点。先对数组排序实现一个插入排序,代码不多,可以写一个。然后就按照那种思想,将链表节点拿出来插入到正确位置。
后来是刷题刷到的一个题目吧,好像是使用快慢指针的方式,采用归并排序,性能算nlgn吧。这个算法分为以下三步,
利用快慢指针找到链表的中间节点,O(n/2)
分别执行n/2长度的归并算法,2*T(n/2)
对两段归并的结果进行merge,O(n)
T(n) = O(n/2) + 2*T(n/2) + O(n)
上面的这个公式的时间复杂度是O(n*lgn)
估计使用冒泡排序不错