乙個小例子:如果 a+b+c=1000,且 a2+b2=c^2(a,b,c 為自然數),如何求出所有a、b、c可能的組合?
import time
start_time = time.time(
)# 注意是三重迴圈
for a in
range(0
,1001):
for b in
range(0
,1001):
for c in
range(0
,1001):
if a**
2+ b**
2== c**
2and a+b+c ==
1000
:print
("a, b, c: %d, %d, %d"
%(a, b, c)
)end_time = time.time(
)print
("elapsed: %f"
%(end_time - start_time)
)print
("complete!"
)
import time
start_time = time.time(
)# 注意是兩重迴圈
資料結構與演算法 學習引入
找到丟失的數字 現在你手上有n 1個數字,這些數字的範圍是 1,n 且這n 1個數字中沒有重複的數字。有上述條件可知 你手上的數字缺了乙個。請編寫一段高效的找到缺失數字的 此題是一道比較老的資料結構與演算法考題,首先,在解答該題時,要進行一些題目的分析,題目分析我們主要做些什麼呢?要弄清楚,這n 1...
資料結構與演算法篇 hash
python中dict結構用雜湊表構建,採用開放定址法解決雜湊衝突 1 雜湊函式構造方法 自己選擇某種規則,避免衝突 直接定址法 數字分析法 平方取中法 摺疊法 除留餘數法 除數為質數 2 解決衝突方法 待插入的元素按雜湊函式計算得到的位址已經被占用 開放定址法 線性探測再雜湊,位址不斷加1,2,3...
演算法與資料結構 排序篇
演算法 平均複雜度 最壞情況 原地排序 額外空間 是否穩定 選擇排序 o n 2n n2 o n2n n2 是 o 1 是氣泡排序 o n 2n n2 o n2n n2 是 o 1 是插入排序 o n 2n n2 o n2n n2 是 o 1 是歸併排序 o n lo gn nlogn nlogn ...