思路:
(1)开辟一个新数组Array,大小为n,将(xp,xp-1,.....xn),(x0,x1,....xp-1)顺序赋值给Array,然后将Array中的数据赋值给R 。
(2)
int array[n];
for (int i=0; i<n-p; i++) {
array[i]=R[p+i];//将xp到xn-1共n-p个数赋值给array[0]到array[n-p-1]
}
for (int i=0; i<p; i++) {
array[n-p+i]=R[0+i];//将x0到xp-1共p个数赋值给array[n-p]到array[n-1]
}
for (int i=0; i<n; i++) {
R[i]=array[i];
}
n=10的情况下运行图
(3)
时间复杂度:O(N)
无论什么情况下,循环体一共执行2N次
空间复杂度:O(N)
需要开辟和R一样大小的N个空间
方法二: