问:这段全排列代码如何优化
#include <bits/stdc++.h>
using namespace std;
int n;
int a[105];
int vis[105];
void f(int s){
if(s>n){
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}else{
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]++;
a[s]=i;
f(s+1);
vis[i]--;
}
}
}
}
int main(){
cin>>n;
f(1);
return 0;
}