#include<iostream>
using namespace std;
/*
假设数组A[N]排序 == 数组 A[n-1]每一位于 A[N]最后一个元素A【N】交换的排序
*/
void Swap(int& num1,int& num2)
{
int iTemp = 0;
iTemp = num1;
num1 = num2;
num2 = iTemp;
}
void PrintArray(int* piScr,int size)
{
for(int i = 0;i < size ;i++)
printf("%d",piScr[i]);
printf("\n");
}
void PermArray(int* piScr, int iEndIndex,int size)
{
if(iEndIndex ==0) // 从最后一个递归,当iEndIndex为0打印条件
{
PrintArray(piScr,size);
}
else
{
for(int i =0;i <= iEndIndex;i++)
{
swap(piScr[i],piScr[iEndIndex]);
PermArray(piScr,iEndIndex - 1,size);
swap(piScr[i],piScr[iEndIndex]);
}
}
}
int main()
{
int num[8]={1,2,3,4,5,6,7,8};
PermArray(num,7,8);
system("pause");
return 0;
}