2017-11-03 16 views
-2

シーケンス検索にかかる時間を計算する練習があります。時間モジュールと関数(時間のインポート時から)が機能しない

timeモジュールからtime関数をインポートし、seq_search関数内で使用しました。

ただし、コンパイルした後は時間が表示されません。

おそらくstart = time()またはend = time()の行の位置に間違いがあるとします。

希望、誰かがこれに対する解決策を知っています。

from time import time 
import random 

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

def seq_search(a, x): 
    start = time()   # start calculating time from here 
    n = len(a) 
    i = 0 
    while (i < n): 
     if(a[i] == x): 
      return i 
     else: 
      i = i + 1 
    end = time()   # stop here 
    print("Lasted time: ", end-start) # print calculated time 
    return -1 

print(seq_search(a, 3)) 
+0

※2回※表示されます。 –

+0

あなたはもっと具体的になりますか? – user284901

+0

'3'は' a'の3番目の数字だけなので、whileループの最初の2回の繰り返しは時間の印刷になります。 –

答えて

1

あなたend = time()printあなたのwhileループの内側にあります。それはendprint文に到達する前に、それは、xに等しい場合

しかし、機能は、iの値を返しています。

+0

でも、end = time()とループを外に出ていても、時間表示は表示されません。 – user284901

+1

印刷は 'return'の前に来なければなりません。関数から戻ると、残りの関数は決して実行されません。 –

+0

whileループの中に 'break'を使って' i'の値を格納するだけです。次に、印刷の代わりに 'return 'を実行します。持続時間:" + str(end-start) ' –

関連する問題