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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #include <stdio.h> int arr[5] = { 1, 2, 3 ,4,5}; int tmp[5]; int Visited[5]; void print(int a[]) { int i; for (i = 0; i < 5; i++) { printf("%d ", arr[tmp[i]]); } printf("\n"); } void perm(int index[], int pos, int len, int depth) { int i; if (pos == depth) { print(index); return; } for (i = 0; i < len; i++) { if (Visited[i] == 0) { Visited[i] = 1; index[pos] = i; perm(index, pos + 1, len, depth); Visited[i] = 0; } } } int main(void) { perm(tmp, 0, 5, 5); } | cs |
'Programming > Algorithm' 카테고리의 다른 글
순열 및 조합 참고 링크 (0) | 2018.04.02 |
---|---|
[자료구조] TRIE 예제 코드 (0) | 2017.12.06 |
긴 자리 덧셈 뺄셈 계산하는 코드 (0) | 2016.03.24 |
알고리즘 학습 사이트 (0) | 2016.03.24 |
길찾기 알고리즘(0 에서 99로 갈 수 있는지 확인) (0) | 2016.03.11 |