2010 循环左移数组

算法思想:数组全部逆置,前n-p个元素和后p个元素全部逆置

代码:

void Reverse(int r[],int left,int right)
{
    int k=left,j=right,tmp;
    while(k<j)
    {
        tmp=r[k];
        r[k]=r[j];
        r[j]=tmp;
        k++;//k右移一个位置
        j--;//j左移一个位置
    }
}
void Left_shift(int r[],int n,int p)
{
    if(p>0&&p<n)
    {
        reverse(r,0,n-1);
        reverse(r,0,n-p-1);
        reverse(r,n-p,n-1);
    }
}

猜你喜欢

转载自www.cnblogs.com/yangmenda/p/11707825.html
今日推荐