Ho dato un'occhiata a diverse dicussioni su diversi siti e nessuno di loro mi ha dato una soluzione. Questo pezzo di codice richiede più di 5 secondi per eseguire:Come velocizzare il loop python
for i in xrange(100000000):
pass
sto lavorando su un problema di ottimizzazione intero e devo usare un O (n log n) algoritmo edit: un O (n²/4) algoritmo, dove n sta per tutti gli elementi della matrice, cioè, nel seguente codice, n * m = 10000. Quindi, per una matrice 100 * 100 con 10000 elementi, il risultato sarà quasi 25000000 iterazioni.. Il suo codice può essere riassunta in questo modo:
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]
Devo rinunciare con Python e tornare a Java o C?
Io lavoro con Python 2.7 e Psyco non è disponibile. PyPy non supporta Tkinter out of the box e sto usando Tkinter.
Quindi, migliorerebbero la velocità di loop? Ci sono altre soluzioni?
hai provato a implementare questo con gli array numpy se è possibile? – joaquin
PyPy certamente accelera tali loop. – delnan
Puoi accelerare i tuoi loop tutto quello che vuoi, il codice sopra non è O (n log n). –