题目
设计一个高效算法,将顺序表的所有元素逆置,要求算法的
空间复杂度为O(1)
每日一问:这个要怎么高效???
代码如下
#include <iostream>
using namespace std;
#define Elemtype int
#define maxsize 50
typedef struct Sqlist
{
Elemtype data[maxsize];
int length=0;
}Sqlist;
Sqlist reverse(Sqlist L)
{
int temp;
int j=L.length-1;
for(int i=0;i<j;i++,j--)
{
temp=L.data[i];
L.data[i]=L.data[j];
L.data[j]=temp;
}
return L;
}
int main()
{
struct Sqlist L;
int n;
cout<<"请输入数据个数"<<endl;
cin>>n;
int num;
cout<<"请输入数据"<<endl;
for(int i=0;i<n;i++)
{
cin>>num;
L.data[i]=num;
L.length++;
}
cout<<"逆置前"<<endl;
for(int i=0;i<L.length;i++)
{
cout<<L.data[i]<<" ";
}
cout<<endl;
cout<<"逆置后"<<endl;
L=reverse(L);
for(int i=0;i<L.length;i++)
{
cout<<L.data[i]<<" ";
}
cout<<endl;
return 0;
}
我是真不知道怎么才能写的更高效了。。。。。
有没有好哥哥帮我!!!!!
明天见~