# Counting sort def printArray(arr): return(' '.join(str(i) for i in arr)) def countingsort(arr): count = [0] * 11 # can store the count of positive numbers <= 10 N = len(arr) for i in range(0, N): count[arr[i]] += 1 for i in range(1, len(count)): count[i] += count[i - 1] print ("Counting Array :", printArray(count)) output = [0] * N for i in range(len(arr)): output[count[arr[i]] - 1] = arr[i] count[arr[i]] -= 1 print ("After Sorting :", printArray(output)) if __name__ == '__main__': arr = [10, 7, 3, 1, 9, 7, 4, 3] print ("Initial Array :", printArray(arr)) countingsort(arr)