循环左移

来源:互联网 发布:逻辑回归算法 编辑:程序博客网 时间:2024/05/19 03:25

题目:

设将n(n>1)个整数存放在以为数组R中,试设计一个在时间和空间两个方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(X0,X1,...,Xn-1)变换为(Xp,Xp+1,...,Xn-1,X0,X1,...,Xp-1)。


#include<iostream>using namespace std;//ab=(a的逆b的逆)的逆 void Reverse(int a[],int left,int right){int temp=right-left+1;temp=temp/2;int temp1;for(int i=0;i<temp;i++){temp1=a[left+i];a[left+i]=a[right-i];a[right-i]=temp1;}}int main(){int len;cin>>len;//字符串长度 int a[len];//自定义字符串类型 for(int i=0;i<len;i++){cin>>a[i];//初始化字符串 }int p;cin>>p;Reverse(a,0,p-1);Reverse(a,p,len-1);Reverse(a,0,len-1);for(int i=0;i<len;i++)cout<<a[i]<<" "; //输出 return 0;} 
运行结果:



原创粉丝点击