Dennis Heidsiek wrote:

>> A = [i for i in worte if not i.lower() == i]
>> B = [i for i in worte if not i in A]
>>
>> Wer sieht den Fehler, der aus einem einfachen O(N) Code einen teuren
>> O(N²) Code macht? :)
> 
> Hm, also dynamische Sprachen sind ja generell nicht so meine Welt, aber
> wenn wenn Du von O(N²) sprichst: Kann es vielleicht sein, dass A nicht
> zwischengespeichert, sondern bei jedem Aufruf in der B-Schleife neu
> berechnet wird?

Nicht ganz aber nah dran. A ist eine Liste, und B prüft für jedes Element in 
worte, ob irgendeins der Elemente in A gleich ist. Es schaut also für jedes 
Element in Worte jedes Element in A an, hat also len(worte)*len(A) 
Variablenvergleiche. 

Und das tut einfach wirklich weh :)

LG, 
Arne

Antwort per Email an