Se k<=n, O(n+k) <= O(2n) che è == O(n) In particolare il tempo necessario a stampare tutti gli elementi con print (o a farci qualsiasi cosa di non estremamente banale) sarà molto maggiore del tempo necessario a creare la nuova lista.
Mi aspetterei anch'io che la soluzione di cm sia più efficiente per liste molto grosse (e usi meno memoria). Ma nel 99% dei casi mi sa che la stragrande maggioranza del tempo si passa dentro il for, e le differenze misurate non siano davvero significative On Mon, Feb 17, 2020, 08:45 Pietro Brunetti <gunzap...@gmail.com> wrote: > >> Le differenze non sono sostanziali, ma la prima è leggermente più >> efficiente >> > > Ciao a tutti, > trovo l'approccio di cm formalmente corretto "iterate lungo una lista" e > non "create una lista". > > Per cm O(n) per l'altra funzione O(n+k), perché non solo itera ma anche > estende. > > Basta dare una occhiata a questo, poi > > https://wiki.python.org/moin/TimeComplexity > > Adesso, il timeit mi contraddice. C'è qualche ottimizzazione dietro? Ho > ragionato male? Bisogna provare con liste più "enormi"? Non so. > > Ciauz > Pietro > >> _______________________________________________ > Python mailing list > Python@lists.python.it > https://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python