安徽新东方烹饪学校学费表:一 个简单的编程题目

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 07:40:01
给定一 一维数组a[14]={1,2,3,4,5,6,7,8,9,10,11,12,13,14}
求它们的所有排列顺序
可以的 ,不是要求它们一共有多少中排列顺序的总数,而是将各种排列顺序显示出来 ,每次都是14个元素,当然可以显示拉

楼下的 ,程序有错误啊,可以写完整吗?

那个 Swap函数的代码 是??可以写出来吗?

#include <iostream.h>
int A[15]={14,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
/*A[1..14];为了下标从1开始,我用15个空间存14个数,第一个空间存数组长度
程序运行不结束是正确的因为14个数的全排列要1278945280个输出
*/
void Write(int a[])
{
// output the the elements of an array;
//input : an array
for(int i = 1;i<=14;i++)
cout<<a[i]<<'\t';
cout<<endl;
sum++;
}
void HeapPermute(int n)
{
/*实现生成全排列的Heap算法
输入全局数组A[1..n]
输出 A的全排列*/
if (n==1)
Write(A);
else
for(int i = 1;i<=n;i++)
{
HeapPermute(n-1);
if (n%2 != 0)
Swap(A[1],A[n]);
else
Swap(A[i],A[n]);
}
}

int main()
{
HeapPermute(14);
//cout<<fun(6);
//cout<<sum<<endl;
//cout<<SearchMin(A,1,5)<<endl;

return 0;
}

关于这方面的呢
我呢
从来就是不及格的了

14*13*12*11*10*9*8*7*6*5*4*3*2种排列方式,写不下.