Kód: Vybrať všetko
prazdny+=druhyZoznamA este jedno,nasiel som ze .remove() ma casovu zlozitost O(n),povedzme ze mame nasledujuci kod
Kód: Vybrať všetko
for i in zoznam:
if i==4:
zoznam.remove(i)Kód: Vybrať všetko
prazdny+=druhyZoznamKód: Vybrať všetko
for i in zoznam:
if i==4:
zoznam.remove(i)Kód: Vybrať všetko
prazdny+=druhyZoznamKód: Vybrať všetko
for i in zoznam:
if i==4:
zoznam.remove(i)
Prvé áno, keďže += pri listoch je vlastne extend(), teda je to O(n)Redpoint1 napísal:Kedze prechadzas cez cely zoznam, tak je to O(n^2) (i ked kvoli tej podmienke nie som si uplne isty)Kód: Vybrať všetko
for i in zoznam: // n if i==4: // 1 zoznam.remove(i) // n
Kedze v zozname je mozno mat hodnotu viac ako raz, tak worst case je O(n^2), len neviem ci je to zaroven aj priemerny.skjerp-deg napísal: Druhé - remove sa vykoná iba raz, takže by to malo byť O(n + n) = O(2n) = O(n), nie?
Kód: Vybrať všetko
for i in zoznam: // n
if i==4: // 1
zoznam.remove(i) // n
break
Kód: Vybrať všetko
zoznam.remove(4)
#resp:
try:
zoznam.remove(4)
except ValueError as e:
print('4 not in the list')