递归生成排列

递归生成排列(按字典序顺序)

啊西,还不是很理解,懵懵懵懵啊
——2020/03/20

#include <iostream>

using namespace std;

//cur表示已经填好的位置个数 
void PrintPermutation(int n, int *A, int cur) {	
	if (n == cur) {
		for (int i = 0; i < n; i++) {
			cout << A[i];
		}
		cout << endl;
	}
	else {
		for (int i = 1; i <= n; i ++) {	//尝试在A[cur]中各种整数i 
			bool is_ok = true; 
			for (int j = 0; j < cur; j++) {
				if ((A[j] == i)) is_ok = false;
			} 
			if (is_ok) {
				A[cur] = i;
				PrintPermutation(n,A,cur+1);
			}
		} 
	}
}

int main(){
	int front[100];
	PrintPermutation(4, front, 0);
	return 0;
}
发布了32 篇原创文章 · 获赞 0 · 访问量 1165

猜你喜欢

转载自blog.csdn.net/qq_44296342/article/details/104984933