私はいくつかのサイトでいくつかの対立を見ていて、どれも解決策を教えてくれませんでした。 コードのこの作品は、実行に5秒以上かかります:Pythonループをスピードアップするには
for i in xrange(100000000):
pass
私は、整数最適化問題に取り組んでいると私はO(nはn個のログ)アルゴリズム編集を使用する必要があります:Oを(ここで、nはすべての行列の項目を表します。つまり、次のコードでは、n * m = 10000です。10000要素の100 * 100の行列の場合、25000000回程度の反復が行われます。。 そのコードは次のようにまとめることができます。
m = 100
n = 100
for i in xrange(m):
for j in xrange(n):
for i2 in xrange(i + 1, m):
for j2 in xrange(j + 1, n):
if myarray[i][j] == myarray[i2][j2] and myarray[i2][j] == myarray[i][j2]:
return [i, j], [i2, j2]
は、私は、PythonであきらめるとJavaやCに戻るべきでしょうか?
私はPython 2.7で動作し、Psycoは利用できません。 PyPyはTkinterをサポートしていないのでTkinterを使っています。
だから、彼らはループの速度を改善するだろうか?他にも解決策はありますか?
可能であれば、これをnumpy配列で実装しようとしましたか? – joaquin
PyPyは確かにそのようなループを高速化します。 – delnan
ループを高速化できます。上記のコードはO(n log n)ではありません。 –