前言
大三了,但数据结构没学好,看到周围学长找工作情况,由然而生的危机感迫使我努力学习,让自己以后找实习技术答辩能过关,所以我把数据结构翻出来啦
一、数据结构和算法
程序设计=数据结构+算法
简单来说数据结构就是关系,就是数据元素相互之间存在的一种或多种特定关系的结合。
数据结构一般分为逻辑结构和物理结构。
四大逻辑结构: 集合结构 线性结构 -------- 一对多关系 树形结构 ------- 一对多关系 图形结构 -------- 多对多关系
物理结构:研究如何把数据元素存储到计算机的存储器中。 顺序存储结构 链式存储结构
算法:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。可以理解为你解题的技巧和方法。
二、时间复杂度
在进行算法分析是,语句总的执行次数T(n)是关于问题规模n的函数,研究其随n的变化情况确定n的数量级。记作:T(n)=O(f(n))。
判断技巧: 用1取代所有加法常数 修改后保留最高项 如果最高项存在且不是1,则去除与这个项相乘的常数。 得到的最后结果就是打O阶。
耗费时间从小到大排序: O(1)<O(longn)<(n)<O(nlongn)<O(n ^ 2)< O(n ^ 3)<O(2^n)<O(n!)<O( n ^n)
三、算法的空间复杂度
算法的空间复杂度通过算法所需的存储空间实现, 记作:S(n)=O(f(n)) 其中n为问题规模,f(n)为语句关于n所占存储空间的函数
总结
时间复杂度是指运行时间的需求 空间复杂度是指空间需求。
|