-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
求算法的時(shí)間復(fù)雜度(求算法的時(shí)間復(fù)雜度的題目和解析)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于求算法的時(shí)間復(fù)雜度的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、什么是算法的時(shí)間復(fù)雜度?
算法的時(shí)間復(fù)雜度是一個(gè)函數(shù),它定性描述該算法的運(yùn)行時(shí)間。
這是一個(gè)代表算法輸入值的字符串的長度的函數(shù)。時(shí)間復(fù)雜度常用大O符號表述,不包括這個(gè)函數(shù)的低階項(xiàng)和首項(xiàng)系數(shù)。使用這種方式時(shí),時(shí)間復(fù)雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時(shí)的情況。
算法的時(shí)間復(fù)雜度取決于什么
算法的時(shí)間復(fù)雜度取決于待處理數(shù)據(jù)的狀態(tài)以及問題的規(guī)模。算法中的指令描述的是一個(gè)計(jì)算,當(dāng)其運(yùn)行時(shí)能從一個(gè)初始狀態(tài)和(可能為空的)初始輸入開始,經(jīng)過一系列有限而清晰定義的狀態(tài),最終產(chǎn)生輸出并停止于一個(gè)終態(tài)。一個(gè)狀態(tài)到另一個(gè)狀態(tài)的轉(zhuǎn)移不一定是確定的。隨機(jī)化算法在內(nèi)的一些算法,包含了一些隨機(jī)輸入。
二、怎么求算法的時(shí)間復(fù)雜度?
for( i=1; i<=n; i++)
這個(gè)語句的時(shí)間復(fù)雜度也是n, i 的值分別為 1,2,3, ..., n
但是,一般算時(shí)間復(fù)雜度這幾個(gè)都會(huì)近似地看成O(n),常數(shù)一般會(huì)忽略不計(jì)(除非很大的情況下)
三、請問算法的時(shí)間復(fù)雜度是怎么計(jì)算出來的?
首先假設(shè)任意一個(gè)簡單運(yùn)算的時(shí)間都是1,例如a=1;a++;a=a*b;這些運(yùn)算的時(shí)間都是1.
那么例如
for(int i=0;i<n;++i)
{
for(int j=0;j<m;++j)
a++; //注意,這里計(jì)算一次的時(shí)間是1.
}
那么上面的這個(gè)例子的時(shí)間復(fù)雜度就是 m*n
再例如冒泡排序的時(shí)間復(fù)雜度是N*N;快排的時(shí)間復(fù)雜度是log(n)。
詳細(xì)的情況,建議你看《算法導(dǎo)論》,里面有一章節(jié),具體講這個(gè)的。
四、時(shí)間復(fù)雜度怎么算例題
1.一般情況下,算法中基本操作重復(fù)執(zhí)行的次數(shù)是問題規(guī)模n的某個(gè)函數(shù),用T(n)表示,若有某個(gè)輔助函數(shù)f(n),使得T(n)/f(n)的極限值(當(dāng)n趨近于無窮大時(shí))為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù)。記作T(n)=O(f(n)),稱O(f(n)) 為算法的漸進(jìn)時(shí)間復(fù)雜度,簡稱時(shí)間復(fù)雜度。
2.在計(jì)算時(shí)間復(fù)雜度的時(shí)候,先找出算法的基本操作,然后根據(jù)相應(yīng)的各語句確定它的執(zhí)行次數(shù),再找出 T(n) 的同數(shù)量級(它的同數(shù)量級有以下:1,log2n,n,n log2n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 該數(shù)量級,若 T(n)/f(n) 求極限可得到一常數(shù)c,則時(shí)間復(fù)雜度T(n) = O(f(n))
3.在pascal中比較容易理解,容易計(jì)算的方法是:看看有幾重for循環(huán),只有一重則時(shí)間復(fù)雜度為O(n),二重則為O(n^2),依此類推,如果有二分則為O(logn),二分例如快速冪、二分查找,如果一個(gè)for循環(huán)套一個(gè)二分,那么時(shí)間復(fù)雜度則為O(nlogn)。
以上就是關(guān)于求算法的時(shí)間復(fù)雜度相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
求算法的時(shí)間復(fù)雜度(求算法的時(shí)間復(fù)雜度的題目和解析)
無限許愿系統(tǒng)小說封面(無限許愿系統(tǒng)封面圖片)
創(chuàng)意立體構(gòu)成(創(chuàng)意立體構(gòu)成作品)