主题:数组轮转--求优化算法
这是小弟写的一个轮转程序:
int n[]={7,4,8,9,1,5};
int i=0,temp1,temp2;//设置了两个中间变量才完成
for(int j=0;j<n.length;++j)
{
temp1=n[0];
for(i=0;i<n.length-1;++i)
{
temp2=n[i+1];
if(i==4)
{
n[i+1]=temp1;
n[0]=temp2;
break;
}
else
{
n[i+1]=temp1;
temp1=temp2;
}
}
for(i=0;i<n.length;++i)
System.out.print(n[i]+" ");
System.out.println();
}
结果如下:
5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5
程序太臃肿,能否简化?(不用指针)
能不能只用一个中间变量,就能完成所需结果?
希望有高手给出优化的算法。
int n[]={7,4,8,9,1,5};
int i=0,temp1,temp2;//设置了两个中间变量才完成
for(int j=0;j<n.length;++j)
{
temp1=n[0];
for(i=0;i<n.length-1;++i)
{
temp2=n[i+1];
if(i==4)
{
n[i+1]=temp1;
n[0]=temp2;
break;
}
else
{
n[i+1]=temp1;
temp1=temp2;
}
}
for(i=0;i<n.length;++i)
System.out.print(n[i]+" ");
System.out.println();
}
结果如下:
5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5
程序太臃肿,能否简化?(不用指针)
能不能只用一个中间变量,就能完成所需结果?
希望有高手给出优化的算法。