Seite 2 von 2
Re: was ist schneller oder sonstwie besser?
Verfasst: Donnerstag 26. November 2015, 21:13
von Goswin
BlackJack hat geschrieben:Grundsätzlich würde ich bei Tagen auch erst einmal die Algorithmen und Datenstrukturen auf den Prüfstand stellen.
Dass mein laufender Algorithmus schlecht ist, das sehe ich auf den ersten Blick. Aber bei komplexen Berechnungen ist es oft gut, verschiedene Algorithmen laufen zu lassen, um die Ergebnisse miteinander zu vergleichen: schließlich gibt es auch inhaltliche Codierfehler.

Da du vorher die Lesbarkeit ansprachst: so etwas wie
Code: Alles auswählen
ff = dict((x,ffx) for x, ffx in ff.iteritems() if ffx != 0)
anstelle von
Code: Alles auswählen
ff = dict((x,ffx) for (x,ffx) in ff.iteritems() if not ffx==0)
halten nur Holländer (eigentlich nur einer) für lesbar. Ich weiß, dass das hier fast alle tun, aber denen ist Lesbarkeit für Outsider egal.

Re: was ist schneller oder sonstwie besser?
Verfasst: Donnerstag 26. November 2015, 21:42
von BlackJack
@Goswin: Den inhaltlichen Fehlern rückt man eigentlich eher mit guten Unit-Tests zuleibe als mit ineffizienten Algorithmen und Datenstrukturen.

Re: was ist schneller oder sonstwie besser?
Verfasst: Donnerstag 26. November 2015, 23:04
von Goswin
BlackJack hat geschrieben:@Goswin: Ich würde da nichts löschen sondern ein neues Wörterbuch erzeugen. Seiteneffekte zu minimieren ist sowieso meistens eine gute Idee.
Zum Algorithmus:
Bei etwa n=1000 habe ich ein defaultdict mit O(n*n) Entries, wovon ich pro Iteration nur O(2*n) Entries hinzufügen oder entfernen möchte. Hältst du es in so einem Fall immer noch für eine gute Idee, beim Entfernen von Entries jedesmal ein neues defaultdict zu bauen?
Re: was ist schneller oder sonstwie besser?
Verfasst: Donnerstag 26. November 2015, 23:08
von Hyperion
Was ist denn das Gesamtproblem? Du beschreibst ja nur einen kleinen Ausschnitt *Deiner Lösung* relativ wage... damit kann man wenig anfangen!
Re: was ist schneller oder sonstwie besser?
Verfasst: Donnerstag 26. November 2015, 23:10
von BlackJack
@Goswin: Wie gesagt, das ist mir zu wenig Kontext und wenn die Algorithmen und Datenstrukturen sowieso schon nicht so besonders sind, dann würde ich/man das vielleicht sowieso komplett anders angehen.