要正式开通C++博客之路啦!!
一、数据结构
1、数据结构定义
数据结构 是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元 素的集合。
2、算法定义
算法 就是定义良好的计算过程,他取一个或一组的值为输入,并产生一个或一组值作为输 出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
3、数据结构书籍
二、算法效率
1、复杂度的概念
衡量一个算法的好坏,一般是从时间和空间两个维度来衡量,即时间复杂度和空间复杂度。
时间复杂度主要衡量一个算法的运行快慢;
空间复杂度主要衡量一个算法运行所需要的额外空间。
三、时间复杂度
定义:在计算机科学中,算法的时间复杂度是一个函数式 T(N) ,它定量描述了该算法的运行时间。
【因为程序运行的时间和编译环境、配置等因素都有关系,在同样机器下运行时间不同,我们一般不计算程序的运行时间(不确定性)作为衡量时间复杂度的标准。】
T(N) 这个函数式计算了程序的执行次数,执行次数就可以代表程序时间效率的优劣。
1、例题一
2、大O的渐进表示法--计算规则
【我们只需要计算程序能代表增长量级的大概执行次数, 复杂度的表示通常使用大O的渐进表示法。 】
3、例题
【示例1】
【示例2】
【示例3】
【示例4】
【4的小结】
【示例5】
【示例6】
四、空间复杂度
1、定义
空间复杂度也是一个数学表达式,是对一个算法在运行过程中因为算法的需要额外临时开辟的空间
【函数运行时所需要的栈空间(储存参数、局部变量、一些寄存器信息等)在编译时期已确定好 了,因此空间复杂度主要通过函数在运行时候显示申请的额外空间来确定。】
2、计算规则
【空间复杂度计算规则与时间复杂度类似,也使用大O渐进表示法】
3、例题
【示例1】
【示例2】
五、常见复杂度对比
六、复杂度算法例题
【方案1】
【方案2】
未完待续啦....