题目
设计一个高效算法,将顺序表L的所有元素逆置,要求空间复杂度为O(1)
设计思路
顺序表L元素逆置即将顺序表首尾元素交换对应交换位置,可以参考简单思路找一个中间空间进行交换
实现代码
方法一
void Reverse(SqList&L)
{
ElemType temp;//辅助空间
for(i=0;i<L.lenth/2;i++;)
{
temp=L.data[i];
L.data[i]=L.data[L.lenth-1-i];
L.data[lenth-1-i]=temp;
}
}
方法二(递归思想)
void Reverse(int *A,int low, int high)
{
if(low<high)
{
swap(A[low],A[high]};
Reverse(A.low+1, A.high-1);
}
}