Dưới đây là một đoạn code em học trên VNOI.
Em thắc mắc ở chỗ dùng hàm rand() vì nếu viết như trong ảnh thì pivot sẽ có giá trị trong khoảng từ
[ left ; right-1 ] . Vậy khi left=right thì lệnh trong ảnh sẽ sai ?
Em nghĩ đáng lẽ lệnh trong ảnh phải là int pivot = a[left + rand() % (right - left + 1)]; chứ ?
Tuy vậy em đã chạy thử code trong ảnh nhưng vẫn cho kết quả đúng.
Nhờ mấy bác giải thích giúp em tại sao lại như vậy ?