当前位置:编程学习 > C/C++ >>

数组循环左移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语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,