1 棧溢位
def
infinite_fib
(n):
return infinite_fib(n-1)
+ infinite_fib(n-2)
if __name__ ==
'__main__'
: infinite_fib(
10)
因為無窮遞迴棧溢位報錯:recursionerror: maximum recursion depth exceeded
2 時間複雜度
2n^2
n+n^2
1常用時間複雜度
1 常量時間 一次賦值
logn 對數時間 折半查詢
n 線性時間 線性查詢
nlogn 對數線性時間 快速排序
n^2 平方 兩重迴圈
n^3 立方 三重迴圈
2^n 指數 遞迴求斐波那契數列、
n! 階乘 旅行商問題
2空間複雜度
原地操作兩個位置的元素,
有些操作需要申請額外空間完成演算法。
布隆過濾
3時間換空間,空間換時間
python資料結構與演算法 棧
逆波蘭表示式 reverse polish notation 有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。輸入 2 1 3 輸出 9 解釋 2 1 3 9 分析 棧 遍歷陣列,逐漸壓入棧中,如果遇到運算字元,則彈出棧頂兩個元素,之後將計算結果再壓入棧中 class solu...
python資料結構與演算法 棧
棧 stack 建立乙個新的空棧 push item 新增乙個新的元素item到棧頂 pop 彈出棧頂元素 peek 返回棧頂元素 is empty 判斷棧是否為空 size 返回棧的元素個數 stack 建立乙個新的空棧 push item 新增乙個新的元素item到棧頂 pop 彈出棧頂元素 p...
資料結構與演算法《棧》
概念 棧 stack 又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使...