码迷,mamicode.com
首页 > 编程语言 > 详细

生成可重集的排序 (白书P184)

时间:2017-07-17 20:18:43      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:排序   space   post   while   htm   div   algorithm   data   content   

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int ans[6];
int book[6],a[6],n;
void dfs(int cnt)
{
	int i,j;
	if(cnt==n) {
		for(i=0;i<n;i++) 
		if(!i) printf("%d",ans[i]);
		else printf(" %d",ans[i]);
		printf("\n");
		return ;
	}
	for(i=0;i<n;i++) {
		if(book[i]) continue;
	    book[i]=1;
		ans[cnt]=a[i];
		dfs(cnt+1);
		book[i]=0;
		while(i<n&&a[i]==a[i+1]) i++;
	}
}

int main()
{
	while(cin>>n) {
		memset(book,0,sizeof(book));
		memset(ans,0,sizeof(ans));
		for(int i=0;i<n;i++) cin>>a[i];
		dfs(0);
	}
	
}

生成可重集的排序 (白书P184)

标签:排序   space   post   while   htm   div   algorithm   data   content   

原文地址:http://www.cnblogs.com/yxysuanfa/p/7196911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!