一 定义:
1.数据结构定义:
就是研究数据的存储方式;把现实中大量而复杂的问题以特定的数据类型(单个数据存储)和特定的存储结构(个体的关系)保存到内存中;
2.算法定义:
在此基础上为实现某个功能(查找,删除,排序等)而进行的操作;
数据结构用于解决存储数据,算法用于对存储数据的操作
二 存储结构:
1.线性表
顺序表: 简单地理解,就是常用的数组
链表: 存储数据时,是随用随申请,因此数据的存储位置是相互分离,存储位置是随机的
栈: 遵循“先入后出”的原则
队列: 遵循“先入先出”的特点
2.树结构
普通树,二叉树,线索二叉树等
3.图结构
三 时间复杂度和空间复杂度:
1.时间复杂度:
算法的运行时间,便是方式为O(频度)
以去掉系数的最高项为准,例如运行了(n² + n + 1)次的算法的时间复杂度为O(n²)
几种常见的算法时间复杂度的比较(由小到大):
O(1)常数阶
< O(logn)对数阶
< O(n)线性阶
< O(n2)平方阶
< O(n3)(立方阶)
< O(nn) (指数阶)
2.空间复杂度
该算法所耗费的存储空间,它也是问题规模n的函数