一、算法
1.对算法的理解
(1)算法(algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法来描述解决问题的策略机制。
(2)算法在计算机领域本质是一系列的程序指令,用于解决特定的运算或逻辑问题。
(3)算法有简单的,有复杂的,有高效的,也有拙劣的。
(4)算法是为了解决某一类问题,这不同的问题采用不同的算法。
(5)算法与数据结构密不可分,数据结构是算法的基石,算法依托于数据结构。
(6)算法首先必须是正确的,即对于任意的一组输入,包括合理的输入与不合理的输入,总能得到预期的输出。
(7)算法必须是由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行。
2.衡量算法好坏的标准
时间复杂度与空间复杂度
3.应用
运算、排序、查找、最优决策...
二、数据结构
1.对数据结构理解
数据结构对应的英文单词是data strycture,是数据的组织、管理和存储的格式,其使用目的是为了高效的访问和修改数据。
数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。
2.分类
(1)线性结构 线性结构是最简单的数据结构,包括数组、链表,以及由它们衍生来的栈、队列、哈希表。
(2)树 树是相对复杂的数据结构,其中比较有代表性的是二叉树,由它又衍生出了二叉堆。
(3)图 图是更为复杂的数据结构,因为在途中会呈现出多对多的关联关系。
(4)其他数据结构 比如跳表、哈希链表、位图。