算法与数据结构
文章平均质量分 86
果冻OoO
这个作者很懒,什么都没留下…
展开
-
算法总结——JS实现回溯
一、回溯定义百度百科回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。其他从解决问题每一步的所有可能选项里系统选择出一个可行的解决方案原创 2022-03-07 11:31:34 · 1942 阅读 · 0 评论 -
Js实现二叉树的递归遍历和迭代遍历
目录一、前序遍历(1)递归实现(2)迭代实现二、中序遍历(1)递归实现(2) 迭代实现三、后序遍历(1)递归实现(2)迭代实现一、前序遍历对应144.二叉树的前序遍历(1)递归实现首先我们需要了解什么是二叉树的前序遍历:按照访问根节点——左子树——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。/** * Defin..原创 2022-03-03 11:43:27 · 1183 阅读 · 0 评论 -
算法总结——JS实现递归
一、递归定义百度百科:递归,就是在运行的过程中调用自己。函数嵌套调用过程示例构成递归需具备的条件:1. 子问题须与原始问题为同样的事,且更为简单;2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。其他:递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。你可能想知道如何实现调用自身的函数。诀窍在于,每当递归函数调用自身时,它都会将给定的问题拆解为子问题。递归调用继续进行,直到到子问题无需进一步递归就可以解决的地步。为了确保递归函数原创 2022-03-02 18:24:42 · 3197 阅读 · 0 评论 -
JS实现各种常用排序
一、插入排序插入排序有直接插入排序,折半插入排序,希尔排序,这里只实现常用的直接插入排序直接插入排序思想将左侧序列看成一个有序序列,每次将一个数字插入该有序序列。插入时,从有序序列最右侧开始比较,若比较的数较大,后移一位。function insertSort(array) {//第一个默认已经排好 for (let i = 1; i < array.length; i++) { let target = i; for (..原创 2022-02-23 17:08:36 · 5009 阅读 · 0 评论