//2020.02.29
資料結構與算法入門(python版本)
第1章 評判算法的優劣名額有哪些?
課時1:算法的基本概念

1、算法Algorithm是一個計算過程,是指解決一個問題的方法.
2、資料結構是指資料存儲的一種結構方式,是靜态的.
3、程式=資料結構+算法(尼古拉斯凱奇說過的一句著名的話).
課時2:時間複雜度介紹
1、估計不同算法運作的快慢方式:時間複雜度
2、時間複雜度是指:用來評估算法運作效率的一個式子(機關),與電腦的配置無關,與算法的運作量無關;
4、判斷時間複雜度的方法:
(1)一般确定問題的規模n;
(2)循環減半過程logn;
(3)k晨關于n的循環就是n的k次方
課時3:空間複雜度介紹
1、空間複雜度:用來評估算法占用記憶體大小的式子(n不同,記憶體占用不同)
2、空間複雜度表示方法與時間複雜度完全一樣
3、原則:空間換時間,争取使用者時間最短。
1、遞歸式子:h(n)=2h(n-1)+1
2、使用遞歸算法可以實作計算
python實作漢諾塔問題遞歸算法:
#遞歸算法計算
#漢諾塔問題的遞歸算法
def hannuota(n,a,b,c):
if n>0:
hannuota(n-1,a,c,b)
print("moving from %s to %s" % (a,c))
hannuota(n-1,b,a,c)
hannuota(3,"A","B","C")
#函數遞歸算法f(n)與f(n-1)的關系知道
def f(n):
if n==1:
return 1
else:
return 2*f(n-1)+1
print("輸出結果為:%d" %f(64))
資料結構與算法入門-算法介紹(python版本)