Algorithmsfrequency bucket logic
Frequency Bucket Logic (Grouping Elements by Frequency for Efficient Processing)
TT
Testlaa Team
May 14, 2026•1 min read
Bucket by frequency groups all values that appear the same number of times—classic for “top k frequent”, deletion scheduling, or building inverse indexes from counts.
Why this shows up in the real world
CDN cache eviction sometimes approximates frequency tiers; batch jobs bucket SKUs by popularity for different SLA tiers.
Core idea (explained for students)
After counting, invert the map: bucket[count] = list of values. Iterate counts from high to low to stream answers without sorting all elements.
Try this in Python
from collections import Counter, defaultdict
def bucket_by_freq(nums: list[int]) -> dict[int, list[int]]:
c = Counter(nums)
buckets: dict[int, list[int]] = defaultdict(list)
for v, k in c.items():
buckets[k].append(v)
return dict(buckets)
print(bucket_by_freq([1, 1, 2, 2, 3]))
Common mistakes
- Buckets with empty lists when a frequency never occurs—skip gracefully.
- Stable tie-breaking: problem may require lexicographic order among ties.
Key takeaways
- Time is often O(n) for count + O(U log U) for unique keys—still linear when U ≤ n.
- Use
defaultdict(list)to append values per frequency.
Tags:
Hashing & frequencyPythonStudents
