"""
把一个有序数组最开始的若干个元素搬到数组的末尾,称之为数组的旋转。例如数组【4,5,1,2,3】为数组【1,2,3,4,5】的一个旋转。
"""
def swap(arr, low, high):
# 交换数组low 到high的内容
while low < high:
tmp = arr[low]
arr[low] = arr[high]
arr[high] = tmp
low += 1
high -= 1
def rotateArr(arr, div):
if None is arr or div < 0 or div >= len(arr):
print('参数不合法')
return
# 不需要旋转
if div == 0 or div == len(arr) - 1:
return
# 交换第一个子数组的内容
swap(arr, 0, div)
# 交换第二个子数组的内容
swap(arr, div + 1, len(arr) - 1)
# 交换整个数组的内容
swap(arr, 0, len(arr) - 1)
if __name__ == '__main__':
array = [1, 2, 3, 4, 5]
rotateArr(array, 2)
i = 0
while i < len(array):
print(array[i], end=' ')
i += 1
运行结果如下:
4 5 1 2 3