狄杰斯卡爾算法 什么是算法的時(shí)間復(fù)雜度?
什么是算法的時(shí)間復(fù)雜度?因?yàn)橛?jì)算機(jī)執(zhí)行計(jì)算需要時(shí)間,我們需要估計(jì)算法完成計(jì)算需要多長(zhǎng)時(shí)間。然而,計(jì)算機(jī)消耗的時(shí)間是執(zhí)行指令,因此我們估計(jì)的時(shí)間復(fù)雜度實(shí)際上是估計(jì)一個(gè)程序相對(duì)于其輸入可以執(zhí)行多少指令才能
什么是算法的時(shí)間復(fù)雜度?
因?yàn)橛?jì)算機(jī)執(zhí)行計(jì)算需要時(shí)間,我們需要估計(jì)算法完成計(jì)算需要多長(zhǎng)時(shí)間。
然而,計(jì)算機(jī)消耗的時(shí)間是執(zhí)行指令,因此我們估計(jì)的時(shí)間復(fù)雜度實(shí)際上是估計(jì)一個(gè)程序相對(duì)于其輸入可以執(zhí)行多少指令才能給出答案。
如果我們有n個(gè)輸入,那么t(n)表示它執(zhí)行的指令數(shù),然后用t(n)乘以每條指令的執(zhí)行時(shí)間就是實(shí)際消耗的時(shí)間。
但是每個(gè)指令的執(zhí)行時(shí)間由計(jì)算機(jī)配置決定,因此不能用于評(píng)估算法。因此我們使用t(n),即相對(duì)于輸入執(zhí)行的指令數(shù)來表示算法的時(shí)間復(fù)雜度。
算法復(fù)雜度是什么概念?
請(qǐng)看一下數(shù)據(jù)結(jié)構(gòu)并簡(jiǎn)要說明:算法復(fù)雜性包括時(shí)間復(fù)雜性和空間復(fù)雜性。時(shí)間復(fù)雜度是執(zhí)行算法所需的時(shí)間(執(zhí)行賦值、比較、判斷等操作的次數(shù)),空間復(fù)雜度是執(zhí)行算法所需的存儲(chǔ)空間量。兩者越低越好,但往往無法兼顧,需要在復(fù)雜的時(shí)空中找到平衡點(diǎn)。