youngseo's TECH blog

순열 생성 본문

KAU/C++ 자료구조

순열 생성

jeonyoungseo 2022. 6. 9. 17:16
#include <iostream>
using namespace std;

void swap(int& a, int& b) {
	int temp = a;
	a = b;
	b = temp;
}


void Permutations(char* a, const int k, const int m) {
	if (k == m) { //순열 출력
		for (int i = 0; i <= m; i++) {
			cout << a[i] << "";
		}
		cout << endl;
	}
	else { //a[k] ... a[m]에 있는 여러 순열을 순환적으로 생성
		for (int i = k; i <= m; i++) {
			swap(a[k], a[i]); //a[k]와 a[i] 교환
			Permutations(a, k + 1, m); //a[k+1] .. a[m]에 대한 모든 순열
			swap(a[k], a[i]); //원래 상태로 돌리기 위해 다시 교환
		}
	}
}

int main(){
	char a[4] = {'w','x','y','z'};
	Permutations(a, 0, 3);

}