[Series] Thuật toán Sinh | Kì hai: Sinh hoán vị
Mục lục Giới thiệu Giới thiệu thuật toán Thuật toán khác Giới thiệu Một hoán vị trong toán học là một dãy gồm n n n kí tự với các kí tự từ 1…9 xuất hiện duy nhất và chỉ một lần: 123, 321, 1234, … Giới thiệu thuật toán Thuật toán sinh hoán vị kế tiếp là một thuật toán được dùng trong tin học máy tính rất nhiều, và thường được thấy ở một số bài toán giải thuật áp dụng. Giống với “Sinh Nhị Phân”, sinh hoán vị cũng là thuật toán được áp dụng với các bài toán mang tính “Lựa chọn” có thứ tự. Ví dụ: Các cách sắp xếp các số từ 1 đến 3 có thể là: 123, 321, 132, 231, 213, 312 Thuật toán được phát biểu như sau: Từ phải qua trái tìm chỉ số đầu tiên xuất hiện trước dãy giảm dần: Ví dụ: 6543 721 thì vị trí cần tìm là i = 4 với A[i] = 3 Trong đoạn giảm dần ở vị trí có phần tử nhỏ nhất vẫn lớn hơn A[i]: Như trên thì chỉ só cần tìm là j = 5 A[j] = 7 Đổi chỗ A[i] và A[j] Sau đó đảo ngược đoạn từ i + 1 -> cuối dãy Code: # include <iostream> using namespace ...