使用Python进行此排序操作的时间复杂度是多少?

时间:2017-02-01 18:37:23

标签: python sorting time-complexity

让我们说我有一个这样的元组元组列表:

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=3i的每个元素L都是(a, b, c)形式的元组元组,其中ab是数字但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),但我不确定如何证明这一点?

0 个答案:

没有答案