Skip to content

Dsa Sort Counting

DodaTech 1 min read

In this tutorial, you'll learn about How to Fix Counting Sort Errors. We cover key concepts, practical examples, and best practices.

Fix counting sort errors when counts array size wrong or number range assumption exceeds memory.

Quick Fix

Wrong

def cs(a):
    m=max(a); c=[0]*(m+1)
    for x in a: c[x]+=1
    return [i for i,v in enumerate(c) for _ in range(v)]

Works but doesn't handle negative numbers. O(n+k) space where k = range.

def cs(a):
    if not a: return a
    m=max(a); mn=min(a); r=mn-m+1; c=[0]*r
    for x in a: c[x-mn]+=1
    out=[]
    for i in range(mn,m+1):
        out.extend([i]*c[i-mn])
    return out
[4,2,2,8,3,3,1] -> [1,2,2,3,3,4,8]. O(n+k) time, O(k) space.

Prevention

Shift indices by min value for negative support. Sum k = max-min+1.

DodaTech Tools

Doda Browser's algorithm visualizer steps through DSA operations line by line. DodaZIP archives implementation patterns for team sharing. Durga Antivirus Pro detects memory corruption patterns in algorithm implementations.

FAQ

What is counting sort?

Sort integers by counting occurrences. O(n+k) where k = range.

When to use?

Small k relative to n. Limited integer range. Non-comparison sort.

Limitations?

Only integers. Range must fit in memory. Not for large k.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro