《大話資料結構》

2021-07-24 05:04:21 字數 338 閱讀 4023

常見的時間複雜度

常見的時間複雜度如下圖所示

常用的時間複雜度所耗費的時間從小到大依次是:

o(1) < o(logn)< o(n)< o(nlogn)< o(n²)< o(n 三次方)< o(2 n次方)< o(n!)< o(n n次方)

我們前面已經談到了 o(1)常數階、o(logn)對數階、o(n)線性階、o(n²)平方階等,至於o(nlogn)我們將會在今後的課程中介紹,而像o(n 三次方)過大的 n 都會使得結果變得不現實,同樣指數階 o(2 n次方)和階乘階 o(n!)等除非是很小的n值,否則哪怕n只是100,都是噩夢般的執行時間,所以這種不切實際的演算法時間複雜度一般我們都不去討論它。

《大話資料結構》

函式的漸進增長 我們現在來判斷一下,兩個演算法a和b哪個更好。假設兩個演算法的輸入規模都是n,演算法a要做2n 3次操作,你可以理解為先有乙個n次的迴圈,執行完成後,再有乙個n次迴圈,最後有三次賦值或運算,共2n 3次操作。演算法b要做3n 1次操作,你覺得它們誰更快呢 準確來說,答案是不一定的 當...

《大話資料結構》

線性表 線性表,從某種就能感覺到,是具有像線一樣的性質的表。在廣場上,有很多人分散在各處,當中有些是小朋友,可也有很多大人,甚至還有不少寵物,這些小朋友的資料對整個廣場人群來說,不能算是線性表的結果。但像剛才提到的那樣,乙個班級的小朋友,乙個跟著乙個排著隊,有乙個打頭,有乙個收尾,當中的小朋友,每乙...

《大話資料結構》

順序儲存方式 線性表的順序儲存結構,說白了,就和剛才的例子一樣,就是在記憶體中找了塊地兒,通過佔位的形式,把一定記憶體空間給佔了,然後把相同資料型別的資料元素依次存放在這塊空地中。既然線性表的每個資料元素的型別都相同,所以可以用c語言 其他語言也相同 的一維陣列來實現順序儲存結構,即把第乙個資料元素...