時間復雜度
===
回顧我們上個題目
~~~
// 已知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

現在是不是差別非常明顯阿!
我們對算法評判考慮代碼的次數 忽略參數量
這個就是時間復雜度了
> 時間復雜度:
> 我們吧將算法執行運算的操作數丟棄低階項,在去除所有系數
> 在他前面加一個O,就是大O表示法

