王道数据结构
顺序表综合应用题02
设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)。
#include <cstdio>
void Reverse(int arr[]);
void PrintList(int arr[]);
int n = 10;
int main() {
int arr[10] = { 4, 3, 2, 1, 5, 6, 7, 8, 9, 10 };
PrintList(arr);
Reverse(arr);
PrintList(arr);
}
void Reverse(int arr[]){
int temp; //辅助变量
for (int i = 0; i < n/2; i++)
{
temp = arr[i]; //交换arr[i]与arr[n-i-1]
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
}
void PrintList(int arr[]) {
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}