-
計算機界著名公式,由瑞士計算機科學家尼克勞斯.威茨(Niklaus Wirth)提出,也因此獲得圖靈獎
程序 = 數據結構 + 算法
沒有看過數據結構和算法,有時面對問題可能會沒有任何思路,不知如何下手去解決;
大部分時間可能解決了問題,可是對程序運行的效率和開銷沒有意識,性能低下;
有時會借助別人開發的利器暫時解決了問題,可是遇到性能瓶頸的時候,又不知該如何進行*針對性的優化* -
模擬場景
a,b,c三個數
1. a+b+c = 1000(0--1000)
2.a**2 +b**2 = c**2
求a,b,c可能的組合??? - 普通的
import time s_time = time.time() import datetime starttime = datetime.datetime.now() print(starttime) for a in range(1,1001): for b in range(1,1001): for c in range(1, 1001): if a+b+c == 1000 and a**2 + b**2 == c**2: print("a= %s,b= %s,c= %s"% (a,b,c)) endtime = datetime.datetime.now() yonghsi = endtime - starttime print("消耗的時間為:%s"%yonghsi)
-
- 時間
- 算法優化
import time starttime = time.time() print(starttime) for a in range(1,1001): for b in range(1,1001): c = 1000 - a - b if a**2 + b**2 == c**2: print("a= %s,b= %s,c= %s"% (a,b,c)) endtime = time.time() print(endtime) yongshi = endtime-starttime print("總耗時為:%s" % yongshi)
-
- timeit (python內置測試模塊)
import timeit #python內置的性能測試模塊 def func(): for a in range(1, 1001): for b in range(1, 1001): c = 1000 - a - b if a ** 2 + b ** 2 == c ** 2: print("a= %s,b= %s,c= %s" % (a, b, c)) timer01 = timeit.Timer("func()","from __main__ import func") #Timer(第一個位置寫你要為哪個函數進行性能測試。第二個位置是從哪引入這個函數) print(timer01.timeit(10)/10) #此處timeit()表示測試次數 #1.2070892295
2020-01-07 00:08:26