数据结构:设计一个高效算法,将顺序表中的所有元素逆置,要求算法空间复杂度为O(1)。

 我来答
崇元化65
高粉答主

2020-10-04 · 说的都是干货,快来关注
知道小有建树答主
回答量:202
采纳率:100%
帮助的人:3.2万
展开全部

设计一个高效算法,将顺序表中的所有元素逆置,要求算法空间复杂度为O(1)扫描顺序表L的前半部分元素L.data[i] (0<=i<L.length/2),将其与后半部分的对应元素L.data[L.length-1-i]进行交换即可。

顺序表的存储只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L  1≤i≤n 其中,L是元素占用存储单元的长度。

扩展资料:

数据的物理结构是数据结构在计算机中的表示,它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种。

数据元素的机内用二进制位(bit)的位串表示数据元素。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。

参考资料来源:百度百科-顺序表

烟火中的尘埃4
高粉答主

2018-04-18 · 说的都是干货,快来关注
知道大有可为答主
回答量:308
采纳率:100%
帮助的人:5.6万
展开全部

数据结构的高效算法:for(int i = 0; i < array.length / 2; i++) {swap(array[i], array[array.length - i - 1])}

只有swap函数需要一个字节的内存,所以空间复杂度O(1)。

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数据结构能起的作用也不同。不同的数据结构其操作集不同,但下列操作必不可缺:

1.结构的生成;

2.结构的销毁;

3.在结构中查找满足规定条件的数据元素;

4.在结构中插入新的数据元素;

5.删除结构中已经存在的数据元素;

6.遍历。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
javaallstar
推荐于2017-11-26 · TA获得超过533个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:192万
展开全部
for(int i = 0; i < array.length / 2; i++) {
swap(array[i], array[array.length - i - 1])
}
只有swap函数需要一个字节的内存,所以空间复杂度O(1)
追问
短小精悍的算法    太牛逼了
追答
额。。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Allesgutezy
2019-09-24
知道答主
回答量:4
采纳率:0%
帮助的人:3123
展开全部
  • void Reverse(Sqlist &L){

  • Elemtype temp;  //辅助变量

  • for(i=0;i<L.length/2;i++){

  • temp=L.data[i];  //交换 L.data[i]与 L.data[L.length-i-1]

  • L.data[i]=L.data[L.length-i-1];

  • L.data[L.length-i-1]=temp;

  • }

  • }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式