Về Chương 6
Phân Phối Lồng Hộp

Counting Sort (Sắp Xếp Đếm)

Thoát khỏi giới hạn O(NlogN) của những phép so sánh kinh điển để đạt tới tốc độ lõi O(N + K).

Tìm thấy Max = 8. Khởi tạo mảng Tần Số (Count Array) gồm 9 cái thùng đếm (từ 0 đến 8).

Mảng Gốc (Input)

4
2
2
8
3
3
1

Các Thùng Chứa Tần Số (Count Array)

0
Thùng 0
0
Thùng 1
0
Thùng 2
0
Thùng 3
0
Thùng 4
0
Thùng 5
0
Thùng 6
0
Thùng 7
0
Thùng 8

Mảng Đích (Output)

Tốc Độ

🚀 Non-Comparison Sort

Không giống Quick Sort hay Merge Sort (những thuật toán phải còng lưng so sánh `A` với `B` để biết ai lớn hơn ai => `O(NlogN)` limits).

Counting Sort hoàn toàn KHÔNG SO SÁNH một lần nào. Nó lợi dụng bản chất Giá Trị Của Số = Vị Trí Index Của Mảng Thùng Mới.

Điểm Yếu Nghiệt Ngã:

Phụ thuộc cực nặng vào MAX(Array). Chỉ dùng cho các mảng có giá trị số nguyên tụm lại trên một khoảng nhỏ (ví dụ điểm thi 0-10, tuổi tác 0-150).

Nếu mảng là [1, 999999999] thì nó sẽ phải tạo ra hẳn một triệu cái thùng trống => Nổ RAM Memory Limit.