我正试图找到一个好的递归算法来打印出集合的子集。 例如
大小 5:给出 集合 {1,2,3,4,5} 和长度为 3 的子集给出此输出:
{5,4,3}
{5,4,2}
{5,4,1}
{5,3,2}
{5,3,1}
{5,2,1}
{4,3,2}
{4,3,1}
{4,2,1}
{3,2,1}
我尝试了很多方法,但都不起作用。在 Internet 上,所有示例都使用集合算法,但出于学习目的,我想编写自己的示例。
有人可以帮我吗?
亲切的问候,
最佳答案
要构建递归算法,您可以注意到 {1,2,3,4,5} 中长度为 3 的每个子集:
- 包含元素“1”和来自 {2,3,4,5} 的 2 个元素。
- 不包含元素“1”和来自 {2,3,4,5} 的 3 个元素。
这两种情况中的每一种都可以通过递归调用您的函数来实现。
关于java - 打印子集的最佳递归算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561166/