企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
时间复杂度 === 回顾我们上个题目 ~~~ // 已知a+b+c=1000,且a^2+b^2=c^2,却1000内所有a,b,c func TestDemo1(t *testing.T) { // 外层循环遍历A for a:=0;a<1001;a++ { // 循化得到B 此时时间复杂度为n^2 for b:=0;b<1001;b++ { // 时间复杂度n^3 for c:=0;c<1001;c++ { if a + b + c == 1000 && a*a+b*b == c*c { t.Logf("找到一个:a:%d ,b:%d ,c:%d\n",a,b,c) } } } } } func TestDemo2(t *testing.T) { for a:=0;a<1001;a++{ for b:=0;b<1001;b++{ c := 1000-b-a if a*a+b*b == c*c{ t.Logf("找到一个:a:%d ,b:%d ,c:%d\n",a,b,c) } } } } ~~~ demo1是三个循环 执行次数就是n^3 demo2是两个循化 执行次数是n^2 三个例子是1000不是台明显,现在我们吧1000改为3k ![](https://box.kancloud.cn/65851243c6bf3c1b42f09509332a55af_829x831.png) 现在是不是差别非常明显阿! 我们对算法评判考虑代码的次数 忽略参数量 这个就是时间复杂度了 > 时间复杂度: > 我们吧将算法执行运算的操作数丢弃低阶项,在去除所有系数 > 在他前面加一个O,就是大O表示法 ![](https://box.kancloud.cn/c98e46db4305362dc74eb5353dc2262c_544x292.png) ![](https://box.kancloud.cn/ddc83fc8c115b7a0c8da9d451d437f87_1099x521.png)