编写一个程序,将长度为n的一维数组各个元素向前移动m个位置,最前面的m个元素变成最后面的m个数
时间: 2023-11-22 11:54:29 浏览: 60
python 有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(示例)
以下是Python语言的程序示例:
```python
def rotate_array(arr, m):
n = len(arr)
m %= n
reverse(arr, 0, m - 1)
reverse(arr, m, n - 1)
reverse(arr, 0, n - 1)
def reverse(arr, start, end):
while start < end:
arr[start], arr[end] = arr[end], arr[start]
start += 1
end -= 1
# 示例输入和输出
arr = [1, 2, 3, 4, 5, 6, 7]
rotate_array(arr, 3)
print(arr) # 输出 [4, 5, 6, 7, 1, 2, 3]
```
其中,`rotate_array` 函数接收一个数组和一个整数 `m`,表示将数组中的元素向前移动 `m` 个位置。程序先将 `m` 取模,然后分别翻转数组的前 `m` 个元素、后 `n-m` 个元素和整个数组,即可得到结果。翻转数组的函数 `reverse` 可以通过交换数组首尾元素来实现。
阅读全文