Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2021-22 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Velocizzare Algoritmo

L
Lolloxox31 (1610 points)
11 16 26
asked Nov 1, 2019 in Programmare in Python by Lolloxox31 (1,610 points)
Salve buongiorno il mio programma supera tutti i test tranne l'esempio 5

perché va in timeout per circa 2/3 decimi di secondo....penso di aver "azzeccato" l'algoritmo

ma evidentemente ho nel ciclo for ho delle cose che rallentano troppo il programma

Avreste dei consigli utili in merito?

Grazie mille in Anticipo

3 Answers

AndreaGasparini (18730 points)
6 12 118
answered Nov 1, 2019 by AndreaGasparini (18,730 points)
edited Nov 1, 2019 by AndreaGasparini
Se effettivamente stai utilizzando uno degli approcci "migliori" per risolvere il problema ma comunque ti va in Timeout l'esempio5 ragiona sul fatto che dipende tutto dal numero di scambi che effettui durante un sorpasso in quanto ne vengono effettuati 1.125.000 circa.

Io per esempio dopo un po' che pensavo di aver trovato la soluzione migliore ma che comunque mi andava in timeout su quel test, ho realizzato che due degli scambi che facevo potevano benissimo essere riscritti come uno scambio solo e quindi impiegare la metà del tempo.
L
Lolloxox31 (1610 points)
11 16 26
commented Nov 1, 2019 by Lolloxox31 (1,610 points)
Ok grazie !!
E
Edward (25950 points)
2 4 172
answered Nov 1, 2019 by Edward (25,950 points)

Dai un'occhiata qui e qui.

L
Lolloxox31 (1610 points)
11 16 26
commented Nov 1, 2019 by Lolloxox31 (1,610 points)
Ok grazie !!
plm (18850 points)
7 15 118
answered Nov 2, 2019 by plm (18,850 points)
Cerca di dividere in tuo algoritmo in macro-blocchi e di vedere tutti i comandi che dai e capire quali siano ridondanti o magari quali possono essere riscritti in maniera da poter impiegare meno tempo. Poniti delle domande come: "Questo if mi serve veramente? Posso scriverlo in maniera diversa? Questi due for li posso scrivere come uno solo? Etc..