王道课后习题2.2.10:将R中的序列循环左移P个位置

题目描述:

设将n(n>1)个整数存放到一维数组R中。设计一个在时间和空间两方面尽可能高效的算法。将R中的序列循环左移P(0

算法思想:

核心代码:

#include 
#include 

#define Maxsize 100
typedef struct SequenceList
{
    int data[Maxsize];
    int length;
}SqList;

void Reverse(int left,int right,int A[])
{
    if(left>=right)
        return;
    for(int i=left,j=right;i=right||right>=arraysize)
        return;
    int mid=(left+right)/2;
    for(int i=0;i<=mid-left;i++)
    {
        int temp=A[left+i];
        A[left+i]=A[right-i];
        A[right-i]=temp;
    }
}

int main()
{
    int A[10]={0,1,2,3,4,5,6,7,8,9};
    int p=5;
    int n=10;
    Reverse(0,p-1,A);
    Reverse(p,n-1,A);
    Reverse(0,n-1,A);
    for(int i=0;i<10;i++)
    {
        printf("%d ",A[i]);
    }
    return 0;
}

你可能感兴趣的:(王道课后习题+)