数据结构学习笔记——基本概念与基本的数据结构

一、常用的三种数据结构

包括线性结构、树、图。

(1)线性结构又包括数组、链表,以及由他们衍生出来的栈、队列、哈希表等。

(2)树结构的典型代表是二叉树,以及衍生品二叉堆等。

(3)相对来说最复杂的数据结构,存在多对多的关联关系。

二、算法复杂性相关概念

(1)算法时间复杂度,表征的是基本操作执行次数。

(2)算法空间复杂度,算法在执行过程中所临时占用的存储空间的大小。

时间复杂度和空间复杂度都用大O表示法。也就是用简化的同数量级函数来表示。

注意:递归是用栈进行数据吞吐的,它所需要的内存空间与递归深度成正比,如果递归的深度是n,空间复杂度就是O(n)。通常情况下能用循环的要尽量避免用递归,其中道理以后再探究。

三、数组

(1)数组在内存中顺序存储。

(2)数组的操作有增、删、改、查四种情况。

(3)查:根据下标进行读取,时间复杂度为O(1)

(4)改:根据下标进行修改,时间复杂度为O(1)

(5)增:也就是插入操作,有尾部插入、中间插入和超范围插入。尾部插入直接放在数组尾部的空闲位置即可,等同于数组的改。中间插入,要先把插入位置及后面的元素向后移动,再把插入的元素放到对应的位置上。超范围插入,要先把数组扩容,书中讲到的是直接创建一个是旧数组长度两倍的新数组,再把原来的数组元组复制过去,再进行插入操作即可。由于需要数组扩容和移动元素,所以增的时间复杂度是O(n)

(6)删:把被删除元素后面的元素都向前挪一位。时间复杂度O(n)。如果不考虑数组的顺序,实际上可以把数组最后一位元素复制到被删除的元素的位置上,然后删除最后一个元素,这样做的时间复杂度是O(1).

(7)数组的优势和劣势:数组读的时间复杂度低,而改(包括增、删)的复杂度

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值