数据结构与算法
1.数据结构
1.1.数据结构:数据结构是一门研究非数值计算的程序设计问题的操作对象以及他们之间的关系和操作等相关问题的学科 (程序设计=数据结构+算法)
1.2.数据结构分为逻辑结构和物理结构
逻辑结构:1.集合结构(无关系) 2.线性结构(一对一的关系) 3.树形结构(一对多的关系)4.图形结构(多对多的关系)
物理结构:1.顺序存储结构(数组) 2.链式存储结构(指针)
2.算法
2.1.算法:根据一定的条件,对一些数据进行计算,得到想要的结果
2.2.算法的五个特征:输入,输出,有穷性,确定性和可行性
输入:算法有0个或多个输入
输出:算法有至少一个或多个输出
有穷性:算法在执行了有限步骤后,自动结束而不会出现无限循环,并且每个步骤都在可接受的时间内完成
确定性:算法的每个步骤都有确定的含义,不会出现二义性,每个步骤都应被精确定义而无歧义
可行性:算法的每一步都是可行的,每一步都能通过执行有限次完成
3.算法设计的要求
- 正确性:算法的正确性指至少有输入和输出和加工处理,无歧义性能正确的反映需求得到答案
1.1 算法程序没有语法错误
1.2 对于合法输入,有满足需求的输出
1.3 对于非法输入,有满足格式的说明
1.4 对故意刁难的测试输入有合法的输出结果 - 可读性
2.1 算法设计另一目的为了便于阅读理解和交流
2.2 写代码的目的,一方面是为了让计算机执行,但还有一个重要的目的为便于他人的阅读和后期修改 - 健壮性
3.1 当输入数据不合法时,算法也能作出相关处理,而不是产生异常,崩溃和其他结果 - 时间效率高与存储量低(优秀算法)