请求分析下述嵌套While循环代码的时间复杂度
代码时间复杂度分析
外层while循环分析
外层循环初始值x=1,每次循环中x的增量为num/10,终止条件是x >= num。
- 当
num为足够大的正整数时,x的每次增量是num的1/10量级,循环执行次数为固定常数(约10次),不随num增大而线性增长。 - 结论:外层循环时间复杂度为 O(1)。
内层while循环分析
内层循环初始化m = num³、y = num,每次循环执行m = m - 100和y = y + 20,直到m <= y终止。
设循环执行k次后终止,此时满足不等式:
num³ - 100k <= num + 20k
整理后可得:
k >= (num³ - num) / 120
当num足够大时,num项相对于num³可忽略,k的量级为num³。
- 结论:内层循环时间复杂度为 O(num³)。
整体时间复杂度
外层循环执行次数为常数级,整体时间复杂度由内层循环主导,最终为 O(num³)。
内容的提问来源于stack exchange,提问作者Bubi
相关产品推荐
相关产品推荐

