码迷,mamicode.com
首页 > 其他好文 > 详细

循环左移

时间:2020-02-03 18:47:01      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:左移   nbsp   main   name   ror   pre   ||   位置   设计   

设将n(n>1)个整数存放到一位数组R中,设计一个算法,将R中的序列循环左移P(0<P<n)个位置,即将R中数据由{X0,X1,....,Xp-1}变换为{Xp,Xp+1,...,Xn-1,X0,X1,...,Xp-1}

 

要实现R中序列循环左移P个位置,只需先将前P个元素逆置,再将剩下的元素逆置,最后将R中的所有元素逆置即可

#include <iostream>
#define N 50
using namespace std;

void reverse(int R[],int l,int r) {
    int i,j;
    for(i=l,j=r; i<j; i++,j--) {
            int 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);
    }
}

int main(){
    int L,i;
    int R[N],n;
    cin>>L;
    cin>>n;
    for (i=0;i<n;i++){
        cout<<R[i]<<" ";
    }
    RCR(R,n,L);
    for(i=0;i<n;i++){
        cout<<R[i]<<" ";
    }
    cout<<endl;
    return 0;
}

 

循环左移

标签:左移   nbsp   main   name   ror   pre   ||   位置   设计   

原文地址:https://www.cnblogs.com/luminous-Xin/p/12256654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!