Tôi đang cố gắng viết một phương thức sẽ tính tất cả các hoán vị của một bộ nguồn có thứ tự quan trọng. Tôi tin rằng đây được gọi là "sắp xếp". Những gì tôi có ý nghĩa bởi đây là:Thuật toán sắp xếp hiệu quả trong java
{a} -> {{a}, {}}
{a,b} -> {{a,b}, {b,a}, {a}, {b}, {}}
{a,b,c} -> {{a,b,c}, {a,c,b}, {b,a,c}, {b,c,a}, {c,a,b}, {c,b,a}, {a,b}, {a,c}, {b,a}, {b,c}, {c,a}, {c,b}, {a}, {b}, {c}, {}}
, vv ấn tượng của tôi là, cho một tập S, tôi nên tạo mỗi hoán vị của mỗi tập hợp con của Powerset S. Vì vậy, đầu tiên tạo ra Powerset, sau đó ánh xạ một hoán vị trên mỗi bộ.
Vấn đề là điều này vô cùng phức tạp - giống như O (∑n!/K!) Với k = 0..n.
Tôi tự hỏi nếu có bất kỳ thuật toán hiện có nào làm điều này loại điều rất hiệu quả (có lẽ là một thực hiện song song). Hoặc có lẽ ngay cả khi một thuật toán sức mạnh song song tồn tại và một thuật toán hoán vị song song tồn tại, tôi có thể kết hợp cả hai.
Suy nghĩ?
Có thể kiểm tra bài đăng này: http://stackoverflow.com/questions/1506078 – squiguy
có thể trùng lặp của [Hoán vị nhanh -> số -> thuật toán ánh xạ hoán vị] (http://stackoverflow.com/questions/1506078/fast -permutation-number-hoán vị-ánh xạ-thuật toán) – Makoto
Tôi không nghĩ rằng đó là một bản sao. Tôi đọc chủ đề đó và nó yêu cầu một cái gì đó khá khác nhau. Các giải pháp có phần tương tự trong chủ đề nhưng chắc chắn là đủ khác nhau để đảm bảo các chủ đề riêng biệt. – rhombidodecahedron