草庐IT

【夜深人静学数据结构与算法 | 第七篇】时间复杂度与空间复杂度

目录前言: 引入: 时间复杂度: 案例:空间复杂度:案例:TIPS:    总结:前言:         今天我们将来介绍时间复杂度和空间复杂度,我们代码的优劣就是依靠这个在评判,以此为背景,我们诞生出了不少的经典思路:用时间换空间,用空间换取时间。而大多数同学对此并不在意,只是草草的看一眼知道这两个词就关闭文章,但这样是不对的,只有熟练的掌握时间复杂度与空间复杂度的计算,我们才可以更好的优化自己的代码,向拥有更低的时间和空间复杂度的代码靠近。引入:     在最开始我们并没有时间复杂度和空间复杂度这个概念,大家对一个程序的的时间与空间消耗还采用一种朴素的方法:直接运行。是骡子是马拉出来溜溜,

【夜深人静学数据结构与算法 | 第四篇】手撕二叉树遍历

目录前言:二叉树遍历方式:手撕前中后序遍历(递归)的三大准备深度优先搜索: 手撕前中后遍历(递归):手撕前中后序遍历(迭代):深度优先搜索:总结:前言:    今天我们将带领大家手撕二叉树的遍历,本篇会分别讲解深度优先搜索法和广度优先有搜索法下的各自详细算法,大家做好准备了嘛?二叉树遍历方式:深度优先遍历广度优先遍历手撕前中后序遍历(递归)的三大准备确定递归函数的参数和返回值。确定终止条件。确定单层递归的逻辑。深度优先搜索: 手撕前中后遍历(递归):        讲深度优先搜索遍历,实际上就是在讲前中后序遍历的方法,我们先用前序遍历进行讲解。 1.确定递归函数的参数和返回值:我们就只传递一个
12