tailieunhanh - Bài toán liệt kê

Thứ tự từ điển Trong các bộ từ điển, các từ được liệt kê theo thứ tự được gọi là thứ tự từ điển. Cho hai từ dưới dạng xâu của các kí tự x = y = Từ x được gọi là đứng trước từ y theo thứ tự từ điển nếu tồn tại chỉ số i, sao cho xj + 1 đứng trước yj + 1 Chú ý: Nếu jm thì ta coi xj là kí tự rỗng, tương tự nếu jn thì coi yj là kí tự rỗng, kí tự rỗng đứng trươc mọi kí. | Bài toán liệt kê Thứ tự từ điển Trong các bộ từ điển các từ được liệt kê theo thứ tự được gọi là thứ tự từ điển. Cho hai từ dưới dạng xâu của các kí tự x y y 1y Từ x được gọi là đứng trước từ y theo thứ tự từ điển nếu tồn tại chỉ số i vsao cho ỉ Xj Vị Xj 1 đứng trước yj 1 Chú ý Nếu j m thì ta coi Xj là kí tự rỗng tương tự nếu j n thì coi yj là kí tự rỗng kí tự rỗng đứng trươc mọi kí tự khác. sửa Liệt kê các hoán vị của tập n phần tử Việc liệt kê toàn bộ các hoán vị của tập X x1 x2 . xm được quy về việc liệt kê tất cả n hoán vị của tập chỉ số 1 2 . n . Ta sẽ liệt kê các hoán vị của n số tự nhiên 1 2 . n theo thứ tự từ điển. Nhận xét rằng khi xếp theo thứ tự từ điển hoán vị đứng trước tiên sẽ là hoán vị 1 2 3 . n - 1 n hoán vị đứng cuối cùng sẽ là hoán vị n n - 1 . 2 1 . Ví dụ với n 5 hoán vị đứng đầu là 1 2 3 4 5 đứng cuối là 5 4 3 2 1 . Trong hoán vị đầu tiên mỗi số đều nhỏ hơn số đứng ngay sau nó trong hoán vị cuối cùng thì ngược lại. Vậy kế tiếp sau hoán vị đầu tiên là hoán vị nào sửa Hoán vị kế tiếp của một hoán vị theo thứ tự từ điển Giả sử có hoán vị x x1 x2 . xn- 1 xn của n số 1 2 . n. . Thuật toán sinh hoán vị kế tiếp 1. Tìm từ bên phải sang chỉ số i sao cho Xị - 1 xi. 2. Nếu không tìm thấy thì trả lời x là hoán vị cuối cùng không có hoán vị kế tiếp. 3. Nếu có i như vậy sắp xếp các giá trị xi . xn theo thứ tự tăng dần. đổi chỗ xi - 1 cho phần tử lớn hơn xi - 1 gần nhất trong các giá trị xi . xn Ví dụ với n 5 . kế tiếp của hoán vị 1 2 3 4 5 là hoán vị 1 2 3 5 4 . kế tiếp của hoán vị 1 2 3 5 4 là hoán vị 1 2 4 3 5 . kế tiếp của hoán vị 1 2 4 3 5 là hoán vị 1 2 4 5 3 . kế tiếp của hoán vị 5 4 3 1 2 là hoán vị 5 4 3 2 1 sửa Thuật toán liệt kê tất cả các hoán vị của n số 1 2 . n 1. Khới tạo x 1 2 . n 2. Tìm x là hoán vị kế tiếp của x 3. Nếu không tìm được thì dừng. 4. Nếu thấy thay x bằng x quay lại 2. Ví dụ Liệt kê 24 hoán vị của 1 2 3 4 theo thứ tự từ điển 1234 1243 1324 1342 1423 1432 2134 2143 2314 2341 2413 2431 3124 3142 3214 3241 3412 3421 .

TỪ KHÓA LIÊN QUAN