数据结构算法(并说明时间复杂度和空间复杂度)

2025-01-06 21:25:03
推荐回答(1个)
回答1:

算法主要用了一个额外的先入后出的线性表(即栈),假定数组为Num[n],流程如下:
1.先申请一个能存放n个整数的栈。
2.把原有数组的后n-p个元素,从后面Num[n-1]到Num[p]开始依次压入栈。
3.把数组的前p个元素,从Num[p-1]开始,把Num[n-1]=Num[p-1],依次类推,直到
Num[n-p]=Num[0].
4.把栈中的数弹出,依次放入数组Num[0]、Num[1]····中,直到放完。
5,这样所得的结果就是所需要的结果。
时间复杂度O(n),空间复杂度也是O(n).