> O(l n)
If you don’t have large numbers of repeats of each element, then l needs to scale like O(log n), so O(l * n) is at least O(n log n).
Fundamentally, what’s going on here is that switching between computation models can easily add and remove log factors.
> so O(l * n) is at least O(n).
I guess you mean "at least O(n*log(n))".
I think you're making some assumptions on n that I'm not making. I'm considering it to be the number of elements to sort, not the size of the input.