数据结构数组循环左移
时间: 2024-10-16 13:07:22 浏览: 49
数组循环左移
数据结构中的数组循环左移通常是指将数组的所有元素向左移动固定位数的操作。例如,如果你有一个长度为n的数组A,通过循环左移k次,第一个元素会移动到第(n-k+1)个位置,而最后一个元素则会变成新的第一个元素。这个操作可以用迭代或递归的方式实现。
一种常见的做法是创建一个新的数组B,大小为原数组的长度,然后依次把原数组的每个元素复制到新数组相应的位置上。如果是顺时针左移,复制的顺序是从后往前,即从最后一个元素开始,逐个向前复制。以下是Python的一个简单示例:
```python
def circular_left_shift(arr, k):
n = len(arr)
# 如果k大于数组长度,对k取模确保它在0到n-1范围内
k = k % n
result = [0] * n # 新建一个数组存放结果
for i in range(n):
# 将原数组元素复制到新数组对应偏移位置
result[(i + k) % n] = arr[i]
return result
# 示例
arr = [1, 2, 3, 4, 5]
k = 2
print(circular_left_shift(arr, k)) # 输出:[4, 5, 1, 2, 3]
```
阅读全文