采用合适的数据结构设计一个算法来求出n个元素a1,a2,... an的所有组合,如果{ }、{a1,a2}、{a2,a3,a4}等,要求给出所用算法的详细描述。
答:设n个元素放在数组A[1…n]中,S初始为空集,可依次将数组A的每一元素并入S,产生了包含一个元素的若干集合。接着,再以含有一个元素的集合为初始集合,依次将A的第二个元素并入S,形成含有两个元素的若干集合。如此下去,直至数组A中的所有元素全部并入。算法如下:
void powerset(set S, int num) { outset(S);//输出集合S for(int i=num+1; i<=n; i++) { powerset(S+A[i], i) }}
【考点】本题考查元素组合。
扫描微信二维码,添加您的专属老师为好友
您在考试中遇到任何问题,老师都会帮您解答
您希望我们通过哪种方式与您联系?
您已选择电话/微信/QQ的联系方式,课程顾问会尽快联系您!
您已选择微信联系方式,课程顾问会尽快添加您的微信,请您确认通过!
您已选择QQ联系方式,课程顾问会尽快添加您的QQ,请您确认通过!
您已选择电话联系方式,课程顾问会尽快联系您!
您已选择“不联系”,课程顾问不会主动联系您。如果后续您有需求,可以在个人中心主动添加销售微信或拨打客服电话:400-111-9811