用python实现一个数组的逆置,最后给出时间复杂度
时间: 2023-02-23 11:03:32 浏览: 83
下面是一种使用 Python 实现数组逆置的方法:
```
def reverse_array(array):
start = 0
end = len(array) - 1
while start < end:
array[start], array[end] = array[end], array[start]
start += 1
end -= 1
return array
```
时间复杂度为 O(n),其中 n 为数组的长度。
代码中使用了双指针法,在数组长度为 n 的情况下,每次操作的时间复杂度都是 O(1),所以总的时间复杂度为 O(n)。
相关问题
定义一个函数完成数组逆置操作 c语言调换地址
以下是一个 C 语言函数,它可以将一个整型数组进行逆置操作:
```c
void reverse(int arr[], int size) {
int temp;
for (int i = 0; i < size / 2; i++) {
// Swap elements at index i and size - i - 1
temp = arr[i];
arr[i] = arr[size - i - 1];
arr[size - i - 1] = temp;
}
}
```
该函数接收一个整型数组 `arr` 和数组的大小 `size` 作为参数。在函数内部,它使用一个循环来遍历数组,将第 `i` 个元素与第 `size - i - 1` 个元素进行交换,从而实现逆置操作。
调用该函数的示例代码:
```c
#include <stdio.h>
void reverse(int arr[], int size);
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(int);
printf("Original array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
reverse(arr, size);
printf("\nReversed array: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果:
```
Original array: 1 2 3 4 5
Reversed array: 5 4 3 2 1
```
用c语言采用指针的方法逆置一维数组,用函数实现数组逆置,在主函数中输出逆置后的数组。
以下是用指针实现一维数组逆置的C语言代码:
```c
#include <stdio.h>
void reverseArray(int *arr, int len) {
int *p1 = arr; // 指向数组第一个元素
int *p2 = arr + len - 1; // 指向数组最后一个元素
while (p1 < p2) {
// 交换 p1 和 p2 指向的元素
int temp = *p1;
*p1 = *p2;
*p2 = temp;
// 移动指针
p1++;
p2--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int);
printf("Original array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverseArray(arr, len);
printf("Reversed array: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果如下:
```
Original array: 1 2 3 4 5
Reversed array: 5 4 3 2 1
```
在 `reverseArray` 函数中,我们使用两个指针 `p1` 和 `p2` 分别指向数组的第一个元素和最后一个元素,然后不断交换它们指向的元素,直到 `p1` 和 `p2` 相遇为止。最后在主函数中输出逆置后的数组。