pythonsort函数时间复杂度_计算xrange()的时间和空间复杂性,随机.randint()和sort()函数...

我在Facebook上得到了答案。感谢沙尚·古普塔。在

我假设你知道渐近符号的基本知识。在

现在,暂时忘掉a.sort()函数,集中精力理解列表:

a=[随机.randint(1100)对于x范围内的i(1000000)]

1000000相当大,所以现在我们把它减少到10。在

a=[随机.randint(1100)对于x范围内的i(10)]

你在这里建立了一个包含10个元素的新列表。每个元素都是通过randint函数生成的。假设时间的函数是。对于10个元素,这个函数将被调用10次,对吗?在

现在,让我们概括一下。对于整数“n”

a=[随机.randint(1100)对于x范围内的i(n)]

你将调用randint函数n次。在

所有这些也可以写成:

对于x范围内的i(n):

a、 追加(randint(1100))

这是O(n)。在

下面是一个简单的print语句。这又是O(n)(在内部,python解释器遍历整个列表)。现在是分类部分。您使用了sort函数。要花多少时间?有很多排序算法在那里,而且没有详细介绍使用的算法,我可以安全地假设时间复杂度将是O(n logn)

因此,代码的实际时间复杂度是T(n)=O(n logn)+O(n),即O(n logn)(对于大n,忽略较低的项)

空间呢?您的代码初始化了大小为“n”的新列表。因此空间复杂度为O(n)。在

给你。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值