将数组中的数据1-9逆置
时间: 2023-11-27 09:52:13 浏览: 94
假设数组为arr,可以使用双指针的方法,从数组两端开始遍历,交换对应位置的值,直到指针相遇即可:
```python
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
left, right = 0, len(arr) - 1
while left < right:
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
print(arr)
```
输出结果为:
```
[9, 8, 7, 6, 5, 4, 3, 2, 1]
```
相关问题
设计一个把存储在数组中的有n个抽象数据元素a0, a1,…,an-1逆置的算法,要求逆置后的新数组b中数据元素序列为an-1 , … , a1 , a0 ,并要求原数组中的数据元素值不被改变。
设计一个逆置数组的算法,我们可以采用双指针法,通常称为快慢指针或者两个索引从两端向中间移动。以下是步骤:
1. 初始化两个指针i和j,分别指向数组的起始位置(0)和结束位置(n-1)。
2. 循环条件是当i < j时,继续执行循环:
- 交换当前元素a[i] 和 a[j] 的值:`temp = a[i]; a[i] = a[j]; a[j] = temp;`
- 指针更新:i增加1(`i++`),j减小1(`j--`)。
3. 当i >= j时,即所有元素都已逆置完毕,退出循环。
算法伪代码如下:
```python
function reverseArray(a, n):
i = 0
j = n - 1
while i < j:
temp = a[i]
a[i] = a[j]
a[j] = temp
i++
j--
return a
```
逆置后的数组b的元素顺序就是原数组a的倒序。这种方法不需要额外的空间,并保持了原始数组元素值不变。
c语言将数组数据逆置输出
在C语言中,可以使用两个指针从数组的两端开始,向中间遍历并交换元素,以此来实现数组数据的逆置输出。这种方法称为“双指针法”。以下是一个简单的示例:
```c
#include <stdio.h>
void reverseArray(int arr[], int size) {
// 初始化两个指针,一个指向数组头,一个指向数组尾
int start = 0;
int end = size - 1;
// 当两个指针相遇或交错时停止
while (start < end) {
// 交换当前位置的元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原数组:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, n);
printf("\n逆置后的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`reverseArray`函数接收一个整数数组和其大小作为参数,通过循环交换首尾元素,最后在主函数中输出原数组和逆置后的数组。
阅读全文