Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

dubbio su velocità programmi

e
enricograziani (1190 points)
2 13 27
in Programmare in python by (1.2k points)
Durante lo svolgimento dell'homework per risolvere uno degli esercizi  mi sono ritrovato a scrivere due versioni dello stesso programma ma in modo completamente diverso. Una delle due soluzioni aveva al suo interno due cicli, mentre l'altra per la risoluzione del problema utilizzava un solo ciclo. Alla fine dei test ho riscontato che il primo era sensibilmente più veloce del secondo. La domanda è questa, come è possibile che una funzione che deve ciclare più volte su dei dati sia più veloce di una funzione che cicla sugli stessi dati una volta sola?
355 views
closed

2 Answers

Best answer
Auron (15880 points)
50 126 194
by (15.9k points)
selected by
Ehi Enri...
Ti direi, banalmente, che tutto dipende da come il programma è scritto, dalle operazioni che si fanno prima, durante e dopo il/i ciclo/i...
Senza vedere il codice risulta difficile dare una spiegazione "Certa"... Resta comunque il fatto che esistono metodi lenti (guarda il tanto blasonato Count) che influiscono molto sulla velocità di esecuzione di un programma, soprattuto se all'interno di un ciclo...
Come ripeto, senza codice risposte certe non si possono dare... Ma torno a dire che se succede è possibile, e che quindi se i dati e il modo in cui si cicla su di essi è identico (almeno in uno dei due cicli), probabilmente la differenza dipende dalle operazioni compiute in tutto il resto del codice :D
VincenzoImperati (6290 points)
6 15 58
by (6.3k points)
Non è sempre detto che una funzione con meno cicli o con meno righe di codice sia più veloce. I test sono un buon modo per riconoscere il codice più efficiente tra i due poiché quest test eseguOno il tuo codice con liste molto grandi e numeri altrettato grandi. Pensando in "grande" si riesce a riconoscere il codice più performante. Ti consiglio di fidarti dei test perché sono un buon metodo di giudizio, anche perché non posso dimostrarti il perché il tuo primo codice è più veloce del secondo