全排列的算法
全排列的算法有哪些?怎样生成全排列?例如:1 2 3 4 5 6 7 8的全排列有8!种,怎样全部列举出来?
#include<iostream> using namespace std; const int MaxNum=20; int a[MaxNum]; void qp(int Array[],int begin,int end); int main() { int i; for(i=0;i<MaxNum;i++) a[i]=i+1; //初始化数组为:1,2,3.. qp(a,0,4); return 0; } void qp(int Array[],int begin,int end) { int i; if(begin>=end) { for(i=0;i<end;i++) cout<<Array[i]<<"\t"; cout<<endl; } else for(i=begin;i<end;i++) { swap(a[begin],a[i]); qp(a,begin+1,end); swap(a[begin],a[i]); } }