数组循环左移P位算法
来源:岁月联盟
时间:2012-10-07
设将n(n>1)个整数存放到一维数组R中。设计一个代码将R中的序列循环左移P(0<P<n),即将R中的数据由
{X0,X1,……Xn-1}变换为{Xp,Xp+1,……,Xn-1,X0,X1,……,Xp-1}
分析:将前P个元素逆置,再将剩下的元素逆置,最后将所有元素逆置
*/ www.2cto.com
void Reverse(int R[],int l,int r)
{
int i,j;
int temp;
for(i=l,j=r;i<j;i++,--j)
{
temp = R[i];
R[i] = R[j];
R[j] = temp;
}
}
void RCR(int R[],int n,int p)
{
if(p<=0||P>=n)
{
printf("ERROR/n");
}
else
{
Reverse(R,0,p-1);
Reverse(R,p,n-1);
Reverse(R,0,n-1);
}
}
上一篇:日志模块的C语言实现
下一篇:C语言 求一个大数的阶乘