数组循环左移P位算法
/*设将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.zzzyk.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语言 ,