写一递归算法,生成并输出n个元素的全排列
时间: 2023-04-25 18:03:14 浏览: 109
递归全排列算法
以下是生成并输出n个元素的全排列的递归算法:
1. 如果n=1,则输出该元素本身作为全排列。
2. 如果n>1,则对于每个元素i,将其与第一个元素交换,然后递归生成剩余n-1个元素的全排列。
3. 递归结束条件为n=,此时输出当前排列。
具体实现如下:
void permute(int arr[], int start, int end) {
if (start == end) {
for (int i = ; i <= end; i++) {
cout << arr[i] << " ";
}
cout << endl;
} else {
for (int i = start; i <= end; i++) {
swap(arr[start], arr[i]);
permute(arr, start+1, end);
swap(arr[start], arr[i]);
}
}
}
调用该函数时,传入数组arr和其起始和结束下标,即可输出arr的全排列。例如,对于数组{1, 2, 3},调用permute(arr, , 2)即可输出其全排列。
阅读全文