一般情況下,算法的基本操作重復(fù)執(zhí)行的次數(shù)是模塊n的某一個(gè)函數(shù)f(n),因此,算法的時(shí)間復(fù)雜度記做:T(n)=O(f(n))
分析:隨著模塊n的增大,算法執(zhí)行的時(shí)間的增長(zhǎng)率和f(n)的增長(zhǎng)率成正比,所以f(n)越小,算法的時(shí)間復(fù)雜度越低,算法的效率越高。2.在計(jì)算時(shí)間復(fù)雜度的時(shí)候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語(yǔ)句確定它的執(zhí)行次數(shù),再找出T(n)的同數(shù)量級(jí)(它的同數(shù)量級(jí)有以下:
1,Log2n,n,nLog2n,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=該數(shù)量級(jí),若T(n)/f(n)求極限可得到一常數(shù)c,則時(shí)間復(fù)雜度T(n)=O(f(n))例:算法:for(i=1;i<=n;++i){for(j=1;j<=n;++j){c[i][j]=0;//該步驟屬于基本操作執(zhí)行次數(shù):n的平方次for(k=1;k<=n;++k)c[i][j]+=a[i][k]*b[k][j];//該步驟屬于基本操作執(zhí)行次數(shù):n的三次方次}}則有T(n)=n的平方+n的三次方,根據(jù)上面括號(hào)里的同數(shù)量級(jí),我們可以確定n的三次方為T(n)的同數(shù)量級(jí)則有f(n)=n的三次方,然后根據(jù)T(n)/f(n)求極限可得到常數(shù)c則該算法的時(shí)間復(fù)雜度:T(n)=O(n的三次方)