新世界,新篇章,I'm Coming!!!
问题:将R中序列循环左移P个位置,即{x0,x1,x2,,,,xn-1},变换{xp,xp+1,,,,,xn-1,x0,x1,,,xp-1}
算法设计思想:先将R中前P个元素逆置,再将剩下元素逆置,最后整体逆置。
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)
cout<<"error"<<endl;
else
{
Reverse(R,0,p-1);
Reverse(R,p,n-1);
Reverse(R,0,n-1);
}
}
502



被折叠的 条评论
为什么被折叠?



