数据结构篇
逻辑结构:
* 线性结构:数组、链表
* 树形结构:二叉树、堆、B树
* 图结构:有向图、无向图
* 抽象数据类型:集合、队列
物理结构:
* 数组:连续存储
* 链表:动态分配节点
* 树和图:邻接矩阵或邻接表
基本操作:
* 插入、删除、查找、更新、遍历
* 分析时间复杂度和空间复杂度
算法篇
算法设计:
* 将解决问题的步骤形式化为计算机指令
算法特性:
* 输入、输出
* 有穷性、确定性、可行性
算法分类:
* 排序算法:冒泡排序、快速排序、归并排序
* 查找算法:顺序查找、二分查找、哈希查找
* 图论算法:Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法
* 动态规划、贪心算法、回溯法、分支限界法
算法分析:
* 时间复杂度:运行时间随数据规模增长的速度
* 空间复杂度:所需内存大小
总结
深入学习算法与数据结构,能够帮助开发人员编写高效、稳定且易于维护的软件系统。