llamacppctl/example_user_prompts/coding_04_performance.md

16 lines
733 B
Markdown
Raw Permalink Normal View History

Gegeben ist eine ineffiziente Python-Funktion, die für eine Liste von Wörtern die Häufigkeit jedes Wortes zählt und dabei für jedes Wort erneut die gesamte Liste durchläuft:
```python
def count_words(words):
counts = {}
for w in words:
counts[w] = 0
for x in words:
if x == w:
counts[w] += 1
return counts
```
Schreibe eine effiziente Variante, erkläre die Verbesserung der Zeitkomplexität und zeige mit einem kleinen Benchmark (z. B. `timeit`) den Unterschied bei größeren Eingaben.
Behandle dabei sinnvolle Randfälle: leere Liste, Groß-/Kleinschreibung und anhängende Satzzeichen (was soll als „dasselbe Wort" gelten?). Triff dazu eine begründete Annahme.