定义一个长度为N的一维整数数组,在不新增数组情况下,编写程序将其中的值逆序重新存放。即第一个元素和最后一个元素交换位置,第二个元素和倒数第二个元素交换位置,……,注意N为奇数和偶数时,程序设计的不同。
时间: 2023-12-10 08:38:22 浏览: 18
以下是一个Python的实现:
```python
def reverse_array(arr):
n = len(arr)
for i in range(n // 2):
arr[i], arr[n - i - 1] = arr[n - i - 1], arr[i]
return arr
```
以上代码使用了Python的切片操作,将数组进行了原地逆序。如果不允许使用切片操作,可以使用一个临时变量进行交换:
```python
def reverse_array(arr):
n = len(arr)
for i in range(n // 2):
temp = arr[i]
arr[i] = arr[n - i - 1]
arr[n - i - 1] = temp
return arr
```
以上代码的时间复杂度为O(N),空间复杂度为O(1)。对于奇数长度的数组,中间的元素不需要进行交换。
阅读全文