数据结构与算法介绍
数据结构与算法介绍
为什么要学习数据结构和算法
数据结构与算法几乎存在于程序开发中的所有地方!!!
例如:插入排序,快速排序,堆排序,冒泡排序等...
算法的五大特征
有穷性
算法的有穷性是指算法必须能在执行有限个步骤之后终止。
确切性
算法的每一步骤必须有确切的定义。
输入项
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。
输出项
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
可行性
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成(也称之为有效性)。
算法的时间复杂度
算法的时间复杂性又称算法的时间复杂度,算法的时间复杂度从本质上说是一个函数,它表示一个算法的运行时间,时间复杂度用大O符号表示,一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。
算法的空间复杂度
算法的空间复杂度是指一个算法在运行的过程中占用临时的内存的量度,
一个算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量~~~