算法的时间复杂度是指(算法设计与分析算法的时间复杂度)
算法的時間復(fù)雜度是指算法執(zhí)行過程中所需要的基本運算次數(shù)。
算法是在有限步驟內(nèi)求解某一問題所使用的一組定義明確的規(guī)則。(推薦學(xué)習(xí):MySQL視頻教程)
通俗地說,就是計算機(jī)解題的過程。算法的復(fù)雜性是算法效率的度量,是算法運行所需要的計算機(jī)資源的量,是評價算法優(yōu)劣的重要依據(jù)。我們可以從一個算法的時間復(fù)雜度與空間復(fù)雜度來評價算法的優(yōu)劣。
當(dāng)一個算法轉(zhuǎn)換成程序并在計算機(jī)上執(zhí)行時,其運行所需要的時間取決于下列因素:
(1)硬件的速度。
(2)書寫程序的語言。實現(xiàn)語言的級別越高,其執(zhí)行效率就越低。
(3)編譯程序所生成目標(biāo)代碼的質(zhì)量。對于代碼優(yōu)化較好的編譯程序,其所生成的程序質(zhì)量較高。
(4)問題的規(guī)模。例如,求100以內(nèi)的素數(shù)與求1000以內(nèi)的素數(shù),其執(zhí)行時間必然是不同的。
顯然,在各種因素都不能確定的情況下,很難比較出算法的執(zhí)行時間。也就是說,使用執(zhí)行算法的絕對時間來衡量算法的效率是不合適的。因此不能用算法程序的執(zhí)行時間或程序長短來確定時間復(fù)雜度,而應(yīng)該用算法執(zhí)行過程中所需要的基本運算次數(shù)來衡量。
時間頻率 一個算法花費的時間與算法中語句的執(zhí)行次數(shù)成正比例,哪個算法中語句執(zhí)行次數(shù)多,它花費時間就多。一個算法中的語句執(zhí)行次數(shù)稱為時間頻度。記為T(n)。
時間復(fù)雜度 在剛才提到的時間頻度中,n稱為問題的規(guī)模,當(dāng)n不斷變化時,時間頻度T(n)也會不斷變化。但有時我們想知道它變化時呈現(xiàn)什么規(guī)律。為此,我們引入時間復(fù)雜度概念。
一般情況下,算法中基本操作重復(fù)執(zhí)行的次數(shù)是問題規(guī)模n的某個函數(shù),用T(n)表示,若有某個輔助函數(shù)f(n),使得當(dāng)n趨近于無窮大時,T(n)/f(n)的極限值為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù)。記作T(n)=O(f(n)),稱O(f(n)) 為算法的漸進(jìn)時間復(fù)雜度,簡稱時間復(fù)雜度。
更多MySQL相關(guān)技術(shù)文章,請訪問MySQL教程欄目進(jìn)行學(xué)習(xí)!
以上就是算法的時間復(fù)雜度是指的詳細(xì)內(nèi)容,更多請關(guān)注風(fēng)君子博客其它相關(guān)文章!
總結(jié)
以上是生活随笔為你收集整理的算法的时间复杂度是指(算法设计与分析算法的时间复杂度)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何向 Microsoft 管理控制台添
- 下一篇: [共享]一个文件上传的控件,绝对是精品源