回溯实现全排列
给定一组数,如:1,2,3。编程实现全排列形式:123,132,213,231,312,321
#include<stdio.h>
#define n 3
int a[n]={1,2,3}; //为作业编一个号,便于后期的全排列
void traceback(int t){
if(t==n){
for(int i=0;i<n;i++){
printf("%d",a[i]);
}
putchar('\n');
return;
}
for(int i=t;i<n;i++){
int temp=a[t];
a[t]=a[i];
a[i]=temp;
traceback(t+1);
temp=a[t];
a[t]=a[i];
a[i]=temp;
}
}
int main(){
traceback(0);
return 0;
}
运行截图
网友评论