数据结构与算法02:【算法】是什么?(图解加深记忆)
数据结构与算法这两个词,经常是连着提到的,但是算法到底是什么呢?算法和数据结构又是什么联系呢?
一、算法图解
直接上图,一图概括算法到底是什么?
二、对应文字解释
-
定义
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的优先序列,并且每条指令表示一个或多个操作。 -
特性
输入:算法具有零个或多个输入;
输出:算法至少有一个或多个输入;
有穷性:1)优先步骤;2)自动结束;3)可接受时间内完成
确定性:不会出现二义性;
可行性:每个步骤都能通过执行优先次数完成。 -
设计要求
1)正确性
-层次1:没有语法错误;
-层次2:非法输入,能够得出满足规格的说明;
-层次3:合法输入,可以产生满足要求的输出;
-层次4:所有测试数据都有满足要求的输出结果;
2)可读性
-可读性也就是方便阅读,容易理解与交流;
3)健壮性
-满足健壮性时,哪怕当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。
4)时间高效及存储量低 -
时间复杂度
1)定义
算法的时间复杂度,也就是算法的时间度量。
2)表示方法
T(n)=O(f(n))
3)推导方法
-用常数1取代所有加法常数
-只保留最高阶项
-如果最高阶想存在且不是1,则忽略与这一项相乘的常数
4)常见的时间复杂度
O(1)<O(logn)<O(n)<O(nlogn)<O(n平方)<O(n立方)<O(2的n次方)
三、推荐学习资料
1.推荐书籍
《大话数据结构》
2.推荐课程
《数据结构》——MOOC浙江大学陈越老师