鱼C论坛

 找回密码
 立即注册
查看: 1139|回复: 10

[已解决]时间复杂度问题

[复制链接]
发表于 2023-4-4 19:15:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么时间复杂度是n,使用了两次for循环?

捕获.JPG
最佳答案
2023-4-4 19:22:25
虽然这段代码中有两个for循环,但它们的时间复杂度之和仍然是O(n)。

这是因为第一个循环的内部while循环与外部for循环之间存在关联。

具体地说,在while循环中的swap操作会将nums[i]放到正确的位置。换句话说,元素nums[i]最多只会被交换一次。

考虑最坏的情况,也就是每个元素都需要被交换一次。那么整个过程中最多会发生n次交换。

所以第一个for循环的时间复杂度为O(n)。而第二个for循环是一个简单的遍历,时间复杂度也为O(n)。

因此,这段代码的总时间复杂度为O(n) + O(n) = O(2n),在大O表示法中,我们可以去掉常数系数,所以最终时间复杂度为O(n)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-4-4 19:17:10 | 显示全部楼层
我知道了,抱歉,今天是没带脑子

因为不是for循环嵌套,所以是n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-4 19:19:27 | 显示全部楼层
本帖最后由 猪猪虾 于 2023-4-4 19:21 编辑

帖子删不掉,打扰了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 19:22:25 | 显示全部楼层    本楼为最佳答案   
虽然这段代码中有两个for循环,但它们的时间复杂度之和仍然是O(n)。

这是因为第一个循环的内部while循环与外部for循环之间存在关联。

具体地说,在while循环中的swap操作会将nums[i]放到正确的位置。换句话说,元素nums[i]最多只会被交换一次。

考虑最坏的情况,也就是每个元素都需要被交换一次。那么整个过程中最多会发生n次交换。

所以第一个for循环的时间复杂度为O(n)。而第二个for循环是一个简单的遍历,时间复杂度也为O(n)。

因此,这段代码的总时间复杂度为O(n) + O(n) = O(2n),在大O表示法中,我们可以去掉常数系数,所以最终时间复杂度为O(n)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 19:44:38 | 显示全部楼层
请设置最佳答案以便移动到【已经解决】模块
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 20:24:09 | 显示全部楼层
sfqxx 发表于 2023-4-4 19:44
请设置最佳答案以便移动到【已经解决】模块

不用,只要将帖子模块改为已经解决就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 20:24:34 | 显示全部楼层
沙漠之烟 发表于 2023-4-4 20:24
不用,只要将帖子模块改为已经解决就行了

我觉得他不会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 20:26:29 | 显示全部楼层

emmm人家20年的比你还早
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 20:31:43 | 显示全部楼层
沙漠之烟 发表于 2023-4-4 20:26
emmm人家20年的比你还早

emmm好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-4 21:19:18 | 显示全部楼层
时间复杂度是理性的,不是感性的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-4 20:17:30 | 显示全部楼层
复杂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 02:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表