... trị trong mảng đều là số nguyên và thuộc khoảng [0 M] đã biết. ý tưởng của thuật toán là đếm xem trong khoảng [0 M] đó có bao nhiêu giá trị 0 (giả sử là a), bao nhiêu giá trị 1 (giả sử là b), ... */ int v; double b[n]; for (int i = 0; i <= M; i++) c[i] = 0; for (i = 1; i <= n; i++) c[a[i]]++; /* đếm số lần xuất hiện của a[i] trong khoảng [0 M] */ for (i = 1; i <= M; i++) c[i] ... (giả sử là b), , bao nhiêu giá trị M (giả sử là z). sau đó xếp lại mảng bằng cách đặt a phần tử 0 ở đầu, tiếp theo đặt b phần tử 1 tiếp theo, , và đặt z phần tử M ở cuối cùng. để giảm thiểu thì...