- 算法的评价指标
- 什么是数据结构?
- 数据+关系
- 数据逻辑结构(关系)
- 集合
- 线性结构
- 树结构
- 图结构或网状结构
- 存储结构
- 顺序存储结构
- 链式存储结构
- 索引存储方法
- 散列存储方法
- 数据类型
- 原子类型
- string
- bool
- int
- ......
- 结构类型
- 类
- 结构体
- 原子类型
- 算法的时间复杂度
- T(n)=O(f(n))
- 算法的空间复杂度
- S(n)=O(f(n))
- 算法本身占用的空间
- 算法运行时占用的空间
- 算法运行时临时占用的空间
- 线性表
- 顺序表(数组Array,动态数组ArrayList)
- Array必须在声明的时候指定类型和容量
- ArrayList,动态数组,Array扩展而来,申明时不需要指定类型和容量,里面存储的是Object类型,使用是包含装箱和拆箱操作
- 链表(单向,双向,循环)
- List使用泛型,声明时指定类型:List<T>
- 类型安全
- 探讨.net Framwork底层线性表的实现方式
- 趣味算法:面积问题
- 约瑟夫算法
- 栈和队列
- 队列的基本用法
- 分析微软底层队列和栈的实现方法
- 趣味算法:返回不重复数的实现
- 串
- String的基本用法
- 具有值类型模式的引用类型
- SringBulder
- 解决字符串拼接的一种比较好的方式
- 串模式匹配
- Brute-Force算法
- KMP算法
- 对KMP算法改进、优化
- String的基本用法
- 树
- 二叉树的基本概念
- 二叉树的存储结构
- 二叉树的遍历
- 深度优先遍历
- 广度优先遍历
- 线索二叉树
- 线索二叉树的实现
- 中序线索二叉树
- 树和深林
- 树的存储结构
- 树、深林、二叉树的转换
- 二叉树的画法(程序实现)
- 趣味算法:魔术师的秘密
- 二叉树的基本概念
- 图
- 图的表示
- 图的存储结构
- 邻接矩阵表示法
- 邻接表表示法
- 图的遍历
- 深度优先
- 广度优先
- 最小生成树
- 普里姆算法
- 克鲁斯卡尔算法
- 弗洛伊德算法
- 总结
- 迷宫算法(打造自己的迷宫)
- 排序
- 冒泡排序与快速排序
- 直接插入排序和希尔排序
- 堆排序
- 归并排序
- 各种排序比较
- 二分查找
- 一些常见的算法