在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/人工智能/ 快排 加 一個(gè)for 時(shí)間復(fù)雜度是多少呢

快排 加 一個(gè)for 時(shí)間復(fù)雜度是多少呢

初學(xué)算法,不太懂這塊的概念,比如一個(gè)函數(shù)

function fn(){
    //快排
    //for(i = 0; i < n; i++){}
}

像這樣的話,這個(gè)時(shí)間復(fù)雜度怎么算呢,是O(nlogn+n)嗎,還是時(shí)間復(fù)雜度就不能這么算
望各位不吝賜教

回答
編輯回答
誮惜顏

初學(xué)者可以簡(jiǎn)單地理解為一個(gè)for循環(huán)就是一個(gè)O(n),for循環(huán)嵌套一個(gè)循環(huán)就是for(n^2),不嵌套的兩(多)個(gè)for循環(huán)依舊是O(n)。

2018年1月1日 10:53
編輯回答
柒槿年

在復(fù)雜度的計(jì)算里,相加的關(guān)系是不會(huì)引起復(fù)雜度數(shù)量級(jí)變化的,只有次方或者log才會(huì)引起數(shù)量級(jí)的變化
例如:

O(N+N) = O(2N) = O(N)
O(N^2+N) = O(N^2)

這應(yīng)該是根據(jù)數(shù)學(xué)里的無(wú)窮大的相關(guān)思想來(lái)的,希望可以幫助到你。

2017年5月14日 23:48
編輯回答
落殤

百度百科:

在計(jì)算時(shí)間復(fù)雜度的時(shí)候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語(yǔ)句確定它的執(zhí)行次數(shù),再找出 T(n) 的同數(shù)量級(jí)(它的同數(shù)量級(jí)有以下:1,log2n,n,n log2n ,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^3+n^2,根據(jù)上面括號(hào)里的同數(shù)量級(jí),我們可以確定 n的三次方 為T(mén)(n)的同數(shù)量級(jí)
則有f(n)=n^3,然后根據(jù) T(n)/f(n) 求極限可得到常數(shù)c
則該算法的時(shí)間復(fù)雜度:T(n) = O(n^3) 注:n^3即是n的3次方。

重點(diǎn)的地方幫你標(biāo)粗了,你指的O(nlogn+n) 相當(dāng)于這個(gè)示例中的T(n)=n^3+n^2,但是示例的時(shí)間復(fù)雜度是f(n)=n^3,因?yàn)楫?dāng)n極限大時(shí),n^2相對(duì)于n^3忽略不計(jì)了,所以最終時(shí)間復(fù)雜度就是f(n)=n^3。換句話說(shuō),時(shí)間復(fù)雜度基本只有1,log2n,n,n log2n ,n的平方,n的三次方,2的n次方,n!這幾種情況,不會(huì)存在你這個(gè)nlogn+n這種情況

2017年5月22日 11:46
編輯回答
薄荷糖

算大的那個(gè) o(nlogn)

2018年1月6日 20:26