Counting sort initialization of the output array, each take time. Therefore, the time for the whole algorithm is the sum of the times for these steps, . Because it uses arrays of length and , the total space usage of the algorithm is also . For problem instances in which the maximum key value is significantly smaller than the number of items, counting sort can be highly space-efficient, as the only storage it uses other than its input and output arrays is the Count array which uses space . If each item to be sorted is itself an integer, and used as
Counting sort key as well, then the second and third loops of counting sort can be combined; in the second loop, instead of computing the position where items with key codice_2 should be placed in the output, simply append codice_8 copies of the number codice_2 to the output. This algorithm may also be used to eliminate duplicate keys, by replacing the codice_10 array with a bit vector that stores a codice_11 for a key that is present in the input and a codice_12 for a key that is not present. If additionally the items are the integer keys themselves, both second and