学习记录4月

0428

看了牛客上剑指offer题,最简单的堆栈都不会,zz,程序猿不适合我(-^-)

从入门到放弃gg。

今天开始make plan to study python.data construct.


♥☺一、数据元素的存储形式有两种

  1. 顺序存储: 数据元素存储在地址连续的存储单元离,其数据间的逻辑关系和物理关系是一致的。(ep.数组)
  2. 链式存储: 把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。链式存储结构的数据元素存储关系不能反应其逻辑关系,所以需要用一个指针来存放数据元素的地址,这样通过地址可以找到相关联数据元素的位置。每一个存储都存放自身数据加指针,指针指向下一个元素地址

 

♥☺二、第二节

  1. 算法的五个基本特征:输入(0个或多个输入)、输出(至少有一个输出)、有穷性(有限步骤之后自动结束)、确定性(无二义性)和可行性(每一步都是可行的)。

 

♥☺三、第三节 算法效率的度量

  1. 算法效率的度量:函数中的常数和其他次要项可以忽略,关注最高次项的阶数。

0429

早上开始看视频,我真棒


♥☺四、第四节 算法时间复杂度

  1. 随着输入规模n的增大,T(n)增长最慢的算法为最优算法。

    下图三个求和算法的时间复杂度分别为O(1),O(n),O(n^2)。

  1. 推导大O阶的方法:
  • 用常数1取代运行时间中所有加法常数
  • 在修改后的运行次数函数中,只保留最高阶项
  • 若最高阶项存在且不是1,去除与这个项相乘的常数
  • 得到的最后结果就是大O阶

          证明了第一条方法,为 O(1)

 

 

 

 

 

常见的时间复杂度总结

所耗费时间从小到大依次是:O(1)<O(log n)<O(n)<O(nlog n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)


0430 放假前一天依然很认真鸭


♥☺五、第五节 线性表

  1. 定义:由零个或者多个数据元素组成的有限序列。
  2. 抽象数据类型(abstract data type):和类有点像,是指一个数学模型及定义在该模型上的一组操作  序号从1开始

 

 

 

 

  1. 线性表的顺序存储结构/链式存储结构(编程相关give up)

链表:第一个结点的存储位置叫做头指针(不为空),最后一个节点指针为空

 

这两个语句不可以互换噢

结论:线性表有两种结构,顺序存储结构/链式存储结构

  • 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。
  • 若需要频繁插入和删除时,宜采用单链表结构。

 

 

♥☺六、第六节 栈和队列

  1. 栈的特征:后进先出(last in first out,LIFO)只在表尾进行删除和插入操作。

  1.  队列的特征:只允许在一端进行插入操作,而在另一端进行删除操作的线性表。先进先出(first in first out,FIFO)

 

  1. 栈一般用顺序表来实现,队列一般用链表来实现
  2. 递归:函数不断调用本身,必须有一个条件退出。

递归函数分为调用和回退阶段,递归的回退顺序是它调用顺序的逆序。(本质是入栈出栈)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值