遞迴-*全排列問題
Problem Description
從n個不同元素任取m(m<=n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列,當m=n時所有的排列情況叫全排列。現輸入n個遞增的數,請你輸出這n個數的全排列。全排列輸出順序如樣例所示。
Input
多組輸入。
首先輸入一個資料組數T(1<=T<=100)
接下來是T組資料。
每組資料有兩行。
第一行先輸入一個整數n(1<=n<=10)。
接下來是一行輸入n個由空格分開的互不相同的整數num(1<=num<=90000)。
Output
對於每組資料,每一種排列佔一行,各元素間用逗號隔開。
Sample Input
1 3 1 2 3
Sample Output
1,2,3 1,3,2 2,1,3 2,3,1 3,2,1 3,1,2
#include <stdio.h>
#include <stdlib.h>
void p(int a[],int k,int m)
{
int i,t;
if(k==m)
{
for(i=1;i<m;i++)
printf("%d,",a[i]);
printf("%d\n",a[m]);
}
else
{
for(i=k;i<=m;i++)
{
t=a[k];a[k]=a[i];a[i]=t;
p(a,k+1,m);
t=a[k];a[k]=a[i];a[i]=t;
}
}
}
int main()
{int t,n,i,a[11];
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
p(a,1,n);
}
}
return 0;
}
相關文章
- 遞迴解決全排列問題遞迴
- 全排列的實現之遞迴版與迭代版遞迴
- 遞迴問題遞迴
- js陣列全排列問題JS陣列
- 全排列價值(數學問題)
- 遞迴路徑問題遞迴
- 樹遞迴問題的求解遞迴
- hdu2048遞迴問題遞迴
- hdu2049遞迴問題遞迴
- Day 28 | 491.遞增子序列 、46.全排列、 47.全排列 II
- 回溯法解決全排列問題總結
- 揹包問題的遞迴與非遞迴演算法遞迴演算法
- 遞迴求解漢諾塔問題遞迴
- 遞迴演算法實踐---實現排列組合遞迴演算法
- 藍橋杯全排列專題
- 字串排列組合問題字串
- python3:遞迴解漢諾塔問題Python遞迴
- ch2_8_3求解迴文序列問題(遞迴實現)遞迴
- 遞迴示例-指定數字以內的所有排列組合(Reduce)遞迴
- 字串全排列字串
- 請教一個切片遞迴賦值的問題遞迴賦值
- 遞迴中的遞推與迴歸以及返回值和函式儲存的問題(以階乘問題進行討論)遞迴函式
- 回溯問題Python框架總結——排列組合問題Python框架
- 以Top-Down思維去解決問題——遞迴遞迴
- Java解決遞迴造成的堆疊溢位問題Java遞迴
- 第一章 遞迴問題 學習筆記遞迴筆記
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- c++迷宮問題回溯法遞迴演算法C++遞迴演算法
- 遞迴和尾遞迴遞迴
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- hdu2045 遞迴水題遞迴
- 快速排序【遞迴】【非遞迴】排序遞迴
- 第七章 遞迴、DFS、剪枝、回溯等問題 ------------- 7.3 題解:機器人走方格問題遞迴機器人
- 演算法——全排列演算法
- LeetCode-046-全排列LeetCode
- LeetCode系列46—全排列LeetCode
- 全排列演算法演算法
- 【LeetCode】46. 全排列LeetCode