[百度校招]打印全排列
2014年的题目,给定n个元素,打印出全排列
比如输入1 2 3,打印出6种排列情况
include <iostream>
using namespace std; void swap(int& a, int& b) { int t = a; a = b; b = t; } void perm(int* array, int n, int k)
{ if (k == n)
{ for (int i = 0; i < n; i++)
{ cout << array[i] << " "; } cout << endl; } for (int i = k; i <n; i++)
{ swap(array[i], array[k]); perm(array, n, k + 1); swap(array[i], array[k]); } } int main() { int array[3] = {1, 2, 3}; perm(array, 3, 0); return 0; }
厚积薄发,行胜于言@飞鸟各投林