100字:O(logn)、O(nlogn)对数时间复杂度

执行的次数即时间复杂度。

若循环嵌套,则要把原来时间复杂度相乘。O(n)与O(n)嵌套,则复杂度为O(n2)

O(logn)

时间复杂度即一段代码被执行的次数。比如一段代码被执行了n次,那么这段代码时间复杂度为O(n)

for i in range(1, n):    # 复杂度O(logn)
	i *= 2
	

i的取值为20, 21 … 2x。直到2x大于n,结束循环。x约等于执行的次数。2x = n。那么x = logn。执行次数约为logn,故时间复杂度为O(logn)

O(nlogn)
for i in range(1, n):    # 复杂度O(n^2^)
	for j in range(1, n):
		pass

这段代码复杂度为O(n2)。

for i in range(1, n):      # 复杂度O(nlogn)
	for j in range(1, n):
		j *= 2

则这段为O(nlogn)。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: nlogn的时间复杂度通常用于排序算法中,例如快速排序和归并排序。对于n=100,000的情况,快速排序和归并排序的时间复杂度都是O(nlogn)级别的。 在实际应用中,CPU时间的消耗取决于很多因素,例如CPU的性能、内存带宽、硬盘读写速度等等。因此,很难给出一个准确的估计值。但是可以通过一些经验公式来大致估算。 假设快速排序或归并排序在n=100,000时的CPU时间为t秒,则可以使用下面的公式进行估算: n1logn1 / n2logn2 = t1 / t2 其中,n1和n2分别是两个不同的n值,t1和t2分别是它们对应的CPU时间。假设我们知道n1=100,000时的CPU时间t1是1秒,那么当n2=1,000,000时,可以通过上面的公式估算得到CPU时间t2大约是11.4秒。 需要注意的是,这个估算仅仅是一个大致的值,实际的CPU时间可能会有很大的差异。 ### 回答2: nlogn的复杂度是一种常见的算法时间复杂度,表示算法的执行时间与问题规模n以及n的对数之积成正比。 当n=100,000时,我们可以通过计算来估算大致需要的CPU时间。 nlogn的复杂度意味着执行时间与100,000乘以其对数之积成正比。我们可以使用对数函数的近似值来计算。 首先,计算n的对数值,即log100,000 ≈ 11.51。 然后,将n乘以对数值,即100,000 × 11.51 ≈ 1,151,000。 因此,当n=100,000时,大致需要1,151,000个单位的CPU时间。 需要注意的是,这只是一个粗略的估算,实际的执行时间可能会受到各种因素的影响,如计算机的硬件性能、算法的具体实现等。而且,对于不同的算法,即使具有相同的时间复杂度,实际执行时间也可能有所不同。因此,这个估算只能作为大致参考。 ### 回答3: nlogn的时间复杂度是一种经典的算法复杂度,表示随着输入规模增大,算法的运行时间将按照nlogn的比率增长。 假设n=100,000时,我们要估计nlogn的时间复杂度所需要的CPU时间。为了便于计算,我们可以采用近似的方法来估计,即将n取一个较大的底数,如2。这样,我们可以将100,000表示成2的多少次方。 通过计算,我们知道100,000约等于2的17次方。所以,nlogn的复杂度可以近似地看作17 * 100,000 = 1,700,000。 因此,当n=100,000时,大概需要1,700,000个时间单位的CPU时间来运行nlogn复杂度的算法。请注意,时间单位的具体数值取决于CPU的速度和执行环境,上述结果只是一个粗略的估计。 需要注意的是,这只是一个大概的估计值,在实际情况下,可能由于算法的实现方式、编程语言的不同、硬件性能等因素,实际所需要的CPU时间会有所变化。因此,在进行实际应用时,需要根据具体的情况进行实际测试和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值