数据结构
-是计算机存储、组织数据的方式。是算法的基础。
算法
-是特定问题求解步骤的描述,计算机指令的集合
区别
数据结构只是静态的描述了数据元素之间的关系,高效的程序需要在数据结构的基础上设计和选择算法 。
-算法是为了解决实际问题而设计的
-数据结构是算法需要处理问题的问题载体。
-程序核心=数据结构+算法
算法分类
1.分治法:有明确的执行方式。----常用算法,高频
-拆分目标,执行小目标,合并
2.最短路径法:有明确的目的,找寻有效的执行方式。----多用于游戏
3.贪婪(贪心)算法:没有明确的目标,没有明确的执行方式。分析当前环境,找寻目标,有效执行方式。----多用于人工智能,机器学习之类
算法五大特性
1.输入:0或多个输入。
2.输出:至少有一个或者多个输出。
3.有穷性:算法在执行有限步骤后,自动结束而不会无限循环,且每一步在可接收时间内完成。
4.确定性:算法的每一步骤都有明确含义,不会出现二义性。
5.可行性:算法的每一步都必须是可行的。即,每一步都能通过执行有限次数完成。
数据结构分类
逻辑结构
1.几何结构:元素和元素之间没有关联关系。如:mao、不定参、枚举。。。
2.线性结构:元素和元素之间1:1,。如,数组,切片,链表
3.树形结构:元素和元素是一对多的关系。如:二叉树,多叉树
4.图形结构:元素和元素是多对多的关系。
物理结构(存储结构)
1.线性存储:数据元素存放在连续的内存单元中。查询效率高。插入、删除效率低。
2.链式存储:数据元素散乱地存放在内存单元中,可通过指针找到顺序。插入、删除效率高,查询效率低。