辐射新维加斯衣服代码:关于数的排列!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 18:41:26
在C语言中,求输入的几个数的大小排列,老是用到(A=T,A=B,B=T)来比较.可是我一直看不懂这是什么意思? 能详讲一下吗?

前两天算法分析课讲到了关于数的全排列问题,我用Java实现了它的一个实例,现供给大家看看.
问题为:R={r1,r2,r3,.......rn}是要排列的n个元素,输出R的全排列.

我定义了一个数组list[]={1,2,3},实现程序如下:
public class Perm{

void Perm1(int list[],int k,int m){
if(k==m)
{
for(int i=0;i<=m;i++)
System.out.print(list);
System.out.println();
}
else
for(int i=k;i<=m;i++){
{int temp=list[k];list[k]=list;list=temp;}
Perm1(list,k+1,m);
{int temp=list[k];list[k]=list;list=temp;}

}
}

public static void main(String args[]){
int list[]={1,2,3};
Perm p=new Perm();
p.Perm1(list,0,2);

}

}

运行结果如下:
1 2 3
1 3 2
2 1 3
2 3 1
3 2 1
3 1 2

两数交换
应该是(T=A;A=B;B=T)
T为中间变量
先把A赋给T,T里存放了A的值,把A的值保护起来,
A=B,A里现在的内容是B的值了
最后把保护起来的A的值给B
就实现了两数交换