1.6.6 정수 배열의 순열
문제 1-19 주어진 정수 배열에서 모든 순열(permutation)을 구하세요.
해결책 인덱스의 각 수를 재귀적으로 호출하는 순열 함수에서 i는 i의 오른쪽에 있는 모든 수와 바뀝니다. 각 수는 오른쪽에 있는 모든 수와 맞바꿔져 가능한 모든 순열을 만듭니다.
해결책 1-19
void permutation(int *arr, int i, int length) { if (length == i) { printArray(arr, length); return; } for (j = i; j < length; j++) { swap(arr, i, j); permutation(arr, i + 1, length); swap(arr, i, j); } } /* 테스트 코드 */ int main() { int arr[5]; for (int i = 0; i < 5; i++) { arr[i] = i; } permutation(arr, 0, 5); }