前言:前兩天騰訊筆試受到1萬點(diǎn)暴擊,感覺浪費(fèi)我兩天時間去??途W(wǎng)做題……這篇博客介紹幾種簡單/常見的排序算法,算是整理下。
時間復(fù)雜度
(1)時間頻度一個算法執(zhí)行所耗費(fèi)的時間,從理論上是不能算出來的,必須上機(jī)運(yùn)行測試才能知道。但我們不可能也沒有必要對每個算法都上機(jī)測試,只需知道哪個算法花費(fèi)的時間多,哪個算法花費(fèi)的時間少就可以了。并且一個算法花費(fèi)的時間與算法中語句的執(zhí)行次數(shù)成正比例,哪個算法中語句執(zhí)行次數(shù)多,它花費(fèi)時間就多。一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度。記為T(n)。
(2)時間復(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ù)雜度。
指數(shù)時間
指的是一個問題求解所需要的計算時間m(n),依輸入數(shù)據(jù)的大小而呈指數(shù)成長(即輸入數(shù)據(jù)的數(shù)量依線性成長,所花的時間將會以指數(shù)成長)
2025國考·省考課程試聽報名