순열 알고리즘 (Permutation)
2017. 7. 18. 00:56ㆍ알고리즘/알고리즘
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <iostream> using namespace std; #define swap(a,b,tmp) tmp=a; a=b; b=tmp; int n,num[1001],tmp; void perm(int* num, int start, int end) { if (start == end) { for (int i = 0; i < n; i++) { cout << num[i] << " "; } cout << '\n'; return; } for (int i = start; i <= end; i++) { swap(num[start], num[i],tmp); perm(num, start + 1, end); swap(num[start], num[i], tmp); } } int main() { cin >> n; for (int i = 0; i < n; i++) { cin >> num[i]; } perm(num, 0, n - 1); return 0; } | cs |
반응형
'알고리즘 > 알고리즘' 카테고리의 다른 글
조합 알고리즘 (Combination Algorithm) (0) | 2017.05.19 |
---|---|
카운팅 정렬 (Counting Sort) (0) | 2017.05.19 |
병합 정렬 (Merge sort) (0) | 2017.05.19 |
유클리드 호제법 (0) | 2017.05.18 |