#include <stdio.h> #include<iostream> using namespace std; void f(int x[], int k) { int i,t; if(k>=3){//出口 for(int i=0;i<3;i++)cout<<x[i]<<" "; cout<<endl; return; } for(i=k; i<3; i++){ {t=x[k]; x[k]=x[i]; x[i]=t;} f(x,k+1);//深搜 {t=x[k]; x[k]=x[i]; x[i]=t;};//回溯 } } int main() { int x[] = {1,2,3}; f(x,0); return 0; }