摘要: 数据结构与算法之二叉树的基本概念和类型 一、二叉树的基本概念 二叉树:二叉树是每个节点最多有两个子树的树结构。 根节点:一棵树最上面的节点称为根节点。 父节点、子节点:如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子 节点。 叶子节点:没有任何子节点的节点称为叶子节点。 兄弟节 阅读全文
posted @ 2021-08-13 16:14 不带R的墨菲特 阅读(243) 评论(0) 推荐(0)
摘要: 原理: 完全二叉树和满二叉树: 1.满二叉树 满二叉树:在一棵二叉树中。如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。 满二叉树的特点有: 1)叶子只能出现在最下一层。出现在其它层就不可能达成平衡。 2)非叶子结点的度一定是2。 3)在同样深度的二叉树中, 阅读全文
posted @ 2021-08-13 15:46 不带R的墨菲特 阅读(387) 评论(1) 推荐(0)
摘要: 原理: 在数列之中,选择一个元素作为"基准"(pivot),或者叫比较值。 数列中所有元素都和这个基准值进行比较,如果比基准值小就移到基准值的左边,如果比基准值大就移到基准值的右边 以基准值左右两边的子列作为新数列,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。 案例: 举个例子,假设我现 阅读全文
posted @ 2021-08-13 14:15 不带R的墨菲特 阅读(217) 评论(1) 推荐(0)
摘要: O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) 各种排序算法比较 各种常用排序算法 类别 排序方法 时间复杂度 空间复杂度 稳定性 复杂性 特点 最好 平均 最坏 辅助存储 简单 插入 排序 直接插入 O(N) O(N2) O( 阅读全文
posted @ 2021-08-13 14:09 不带R的墨菲特 阅读(1486) 评论(0) 推荐(0)
摘要: 第几次查询 剩余查询数 1 N/2 2 N/22 3 N/23 ... ... k N/2k 在第k次已经找到 N/2k = 1 k = log2N 则时间复杂度为O( log2N) 空间复杂度O(1),辅助空间度 def bin_search(arr,x): l,r = 0,len(arr)-1 阅读全文
posted @ 2021-08-13 13:23 不带R的墨菲特 阅读(29) 评论(1) 推荐(0)
摘要: 空间复杂度 如果代码开了数组,则为数组长度 如果有递归,则为递归深度 如果有数组有递归,取最大值 递归: def fib(n): """ 递归:时间复杂度O(2**n),空间复杂度O(N),树的高度""" if n < 3: return 1 else: return fib(n - 1) + fi 阅读全文
posted @ 2021-08-13 12:54 不带R的墨菲特 阅读(344) 评论(0) 推荐(0)