算法一,t为临时空间,空间复杂度为 S(n) = O(1) 原地工作
#include <stdio.h>
int main(void) {
int n = 6, t = 0, a[] = {1, 2, 3, 4, 5, 6};
for (int i = 0; i < n / 2; i++) {
t = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = t;
}
return 0;
}
算法二,b为临时空间,空间复杂度为 S(n) = O(n)
#include <stdio.h>
int main(void) {
int n = 6, a[] = {1, 2, 3, 4, 5, 6};
int b[6];
for (int i = 0; i < n; i++) {
b[i] = a[n - i - 1];
for (int i = 0; i < n; i++) {
a[i] = b[i];
}
}
return 0;
}