2017-03-04,周末整理
上一周的培训课程,讲了数据结构和算法的一些初步知识,然后就是复习第一阶段,周五则是进行了考试。
考试的结果不是很满意,有一些知识漏洞应该是要掌握的,但是却因为自己的偷懒,没有去认真记忆。而且现在需要了解一下更深入的知识,为以后的面试打下基础。
考试的错题总结已经完成。
- 数据结构
- 逻辑数据结构、物理数据结构。
- 数据、数据项、数据元素、数据对象、数据结构。这几者之间的关系,数据结构就是相互之间存在一种或多种特定关系的数据元素的集合。
- 集合:数据元素之间除了同属一个集合之外不存在任何关系(关系集合为空)
- 线性结构:除第一个元素之外,每一个元素都仅有一个直接前驱元素,除最后一个元素之外,每个数据元素有且仅有一个直接后驱元素。
- 树状结构:除了原始根元素以外,每个数据仅有一个直接前驱元素,但是可以有多个直接后驱元素。
- 图结构:每个数据都可以有多个直接前驱元素和多个直接后驱元素。
- 数据的存储结构:
- 顺序存储结构
- 链式存储结构
- 栈、队列。
- 二叉树
- 完全二叉树,满二叉树。
- 二叉树的先序遍历、中序遍历、后序遍历三种遍历方法。
- 三种遍历方法的程序实现。(使用递归方法来实现,用数组实现和用链表实现)。
- 算法
- 时间复杂度、空间复杂度。
- 时间复杂度:该语句被执行的次数、每条语句被执行的时间。
- 空间复杂度:执行语句时,所使用到的内存空间大小。
- 递归
- 方法调用方法本身。在多个函数调用嵌套时,按照后调用先返回的原则处理。
- 排序
- 冒泡排序
- 将大数依次往后移一位,循环变量从大到小。
- 选择排序
- 将小数的下标保存下来,然后交换位置。
- 插入排序
- 将当前位置的数保存下来,与前面的数一一比较,直到碰到比自身小的数停下来,并插入到该小数的后一个位置。
- 冒泡排序
- 时间复杂度、空间复杂度。