Pythonの数重量:プログラムの時間計算量は、使用される方法であることが理解されるための時間のみの複雑させながら、テストループO(N)と比較して、二重、O(N-2 ^)がある場合、ように、そして半分と比べてO(logN個)、例えば、半分の急速パワー場合、バイナリサーチ、のためにループが半分を設定し、その後、時間複雑度であったO(nlogn)が。
大きさの昇順に、共通の時間複雑さは、次のとおりです。
一定の順序O(1)のオーダーのO( Lのog2n )、線形順序O(N)、
線形順序O(nlog2n)、注文の正方形O(N-2 ^) 、立方オーダO(N ^ 3)、... 、
K オーダー番目はO(n ^ k)は、指数オーダーはO(n-2 ^) 。問題の大きさとしてNが低く、時間複雑度が増加しているアルゴリズムの効率が増加しています。
実際のテストの例を示します。重いサイクルのための3つの、二重のための3つのサイクル
再循環させるため、まず、
1.再用ループ - のために必要な秒の計算1,2,4,8,16万回数
サイクル2.ダブル - 必要な秒数の操作1,2,4,8,16千タイムズスクエア
import time
pr=1000
print("%s%10s" % ("problemSize","secondsA"))
for count in range(5):
start=time.time()
work=1
for i in range(pr):
for x in range(pr):
work+=1
en=time.time()-start
print("%5d平方次%10.5f" % (pr,en))
pr*=2