2.20数据结构的基本概念

1.什么是数据结构?
通过老师讲的例题,思考了一些,如何摆放书?摆放书的方法有很多种,如何高效的摆放,选择适合的方法摆放,这些就是思想。比如找某本指定的书,我们按照书名的首字母将书排序,这样我们就能通过二分法找到这本书。还有一个例题,打印一个1到n的全部整数,如果用递归,虽然代码简洁,但是计算机无法运行出来,占内存太大,在写代码时,递归并不是一个好的选择,写递归是方便我们自己理解代码,方便别人的代码。
2.什么是算法?
算法是一个有限的指令集。算法一定有终止。一个好的算法它的空间复杂度和时间复杂度的都比较优。所以我们在学算法时,不仅要考虑时间上比较优的,还要考虑空间上比较优的。递归就在空间上占用过多。
3.最大子序列和
求最大子序列和有四种方法,第一种,就是把每个序列的和都加起来。然后比大小。选出和最大的。这个算法的时间复杂度为o(n立方)。第二种,从第i个开始计算子序列和,选出最大的子序列和,这个算法的时间复杂度为o(n平方)。第三种,分而治之,把一个比较大的复杂的问题切分成小的块来解决,把这个数组一分为二,再缩小,缩到只有一个元素,然后来选择比较大的一个,再向上一步合并,就可以得到答案。第四种方法是在线处理,从同开始处理这个,如果最开始这个数字是负数,理所当然被抛弃,往后处理,在线处理有一个当前的和和最大和,当我们遍历时遇到负数,就暂停,比较这个当前和与最大和的大小,然后再从下一个数字开始,当前和更新为0,这个方法虽然速度较快,但是可能出错,也有缺点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值