让我们说我有一个这样的元组元组列表:
L = [(0, 2.0, (2.91, 0.74, 2.20, 1.81, 2.37, 2.51)),
(1, 2.0, (2.40, 1.03, 0.78, 0.98, 1.30, 2.12)),
(2, 2.0, (3.80, 2.51, 0.92, 1.84, 0.89, 0.97))]
其中L
的长度为n
。因此,在上面的示例中,n=3
。 i
的每个元素L
都是(a, b, c)
形式的元组元组,其中a
和b
是数字但c
是元组的元组长度k
。所以在上面的例子中,我们有k=6
。
我执行以下python排序操作:
L.sort(key=lambda t: (-t[1], sorted(t[2])))
我需要找出此操作的最坏情况时间复杂度?
我的想法是:由于我们key=lambda t: (-t[1], sorted(t[2]))
对长度c
的元组k
进行排序,因此我们有O(k log k)
。总的来说,我们会O(kn log k log n)
,但我不确定如何证明这一点?