曹俊-6分.txt

来自「这是很不错的计算机算法」· 文本 代码 · 共 66 行

TXT
66
字号
#include <fstream.h>

//--------------------- 变量、函数定义 开始 ------------------

ofstream myoutf("output.txt"); //输出到文件,全局变量

//--------------------- 变量、函数定义 结束 ------------------

void Swap(int & a,int & b)//引用调用,修改参数的实际值
{
int temp;
temp = a;
a = b;
b = temp;
}

void Perm(int list[], int k, int m)
{ //全排列算法 -- 递归
//产生list[k:m]的所有排列
if (k == m)
{
for (int i = 0; i<=m; i++)
{
myoutf << list[i] << " ";
cout << list[i] << " ";
}
myoutf << endl;
cout << endl;
}//if

else //多元素序列,递归产生排列
{
for (int i=k; i<=m; i++)
{
Swap(list[k],list[i]);
Perm(list, k+1, m);//递归
Swap(list[k],list[i]);
}//for
} //else

} //void Perm


void main() {
int * array; //定义一个整型数组指针
int count; //定义数组大小变量

ifstream myinf("input.txt",ios::nocreate);
if (myinf.fail())
{
cerr << "读入文件出错";
return;
}

myinf >> count;
//生成数组,用于下面的排列
array = new int[count]; //申请堆空间
for(int i=0;i<count;i++)
{
array[i] = i+1;
cout << array[i] << endl;
}

Perm(array, 0, count-1);
delete(array); //释放堆空间
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?