Hoán vị nào dưới đây là hoán vị kế tiếp của hoán vị 2 1 3 4 5 6 7 8 9.
Trả lời:
Đáp án đúng: C
Hoán vị kế tiếp của một hoán vị được tìm bằng cách:
1. Tìm từ phải sang trái vị trí i đầu tiên mà a[i] < a[i+1]. Nếu không tồn tại, đây là hoán vị cuối cùng.
2. Tìm từ phải sang trái vị trí j đầu tiên mà a[j] > a[i].
3. Đổi chỗ a[i] và a[j].
4. Đảo ngược đoạn từ i+1 đến cuối mảng.
Trong trường hợp này, hoán vị hiện tại là 2 1 3 4 5 6 7 8 9.
Bước 1: Tìm từ phải sang trái, vị trí i đầu tiên mà a[i] < a[i+1]. Ta thấy vị trí i = 2 (với a[2] = 1) thỏa mãn điều kiện (vì 1 < 3).
Bước 2: Tìm từ phải sang trái, vị trí j đầu tiên mà a[j] > a[i] (tức là a[j] > 1). Ta thấy vị trí j = 3 (với a[3] = 3) thỏa mãn điều kiện.
Bước 3: Đổi chỗ a[i] và a[j], tức là đổi chỗ 1 và 3. Hoán vị trở thành: 2 3 1 4 5 6 7 8 9.
Bước 4: Đảo ngược đoạn từ i+1 đến cuối mảng, tức là đảo ngược đoạn từ vị trí 3 đến vị trí 9 (1 4 5 6 7 8 9). Vì đoạn này đã sắp xếp tăng dần, sau khi đảo ngược sẽ thành giảm dần. Tuy nhiên, trong trường hợp này ta không cần đảo ngược gì cả vì đoạn sau vị trí i+1 (tức vị trí 3) đã được sắp xếp tăng dần.
Vậy hoán vị kế tiếp là 2 3 1 4 5 6 7 8 9.





