Проблема с вашей версией в том, что она не будет работать, если у элементов есть спутниковые данные.
Версия CLRS будет работать и будет стабильной.
РЕДАКТИРОВАТЬ:
Вот реализация версии CLRS в Python, которая сортирует пары (ключ, значение) по ключу:
def sort(a):
B = 101
count = [0] * B
for (k, v) in a:
count[k] += 1
for i in range(1, B):
count[i] += count[i-1]
b = [None] * len(a)
for i in range(len(a) - 1, -1, -1):
(k, v) = a[i]
count[k] -= 1
b[count[k]] = a[i]
return b
>>> print sort([(3,'b'),(2,'a'),(3,'l'),(1,'s'),(1,'t'),(3,'e')])
[(1, 's'), (1, 't'), (2, 'a'), (3, 'b'), (3, 'l'), (3, 'e')]