08 2021 档案

摘要:IO:Input Output 流的概念和作用 流是一组顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象,即数据在两设备间传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据 处理的数据类型不同可以分为:字符流和字节流 根据数据的流 阅读全文
posted @ 2021-08-23 19:27 笔锋 阅读(88) 评论(0) 推荐(0)
摘要:16. 动态规划 16.1 应用场景 背包问题,有一个背包,容量为4磅,现有如下物品 物品 重量 价格 吉他(G) 1 1500 音响(S) 4 3000 电脑(L) 3 2000 要求 讲物品装入背包,在不超出容量的情况下使背包的总价值最大 要求装入的物品不能重复 16.2动态规划算法介绍 动态规 阅读全文
posted @ 2021-08-18 16:36 笔锋 阅读(426) 评论(0) 推荐(0)
摘要:15. 分治算法(Divide-and-Conquer(P)) 15.1 分治算法介绍: 分治算法是一种很重要的算法,字面解释就是“分而治之”,就是把一个复杂的问题分成两个或更多享用或相似的子问题,再把子问题分成更小的子问题......知道最后子问题可以简单地直接求解,原问题的解即子问题的解得合并。 阅读全文
posted @ 2021-08-18 13:44 笔锋 阅读(126) 评论(0) 推荐(0)
摘要:14.2.1 深度优先遍历(Depth First Search) 深度优先遍历,从初始访问节点出发,初始访问节点可能有多个邻接节点,深度优先遍历的策略就是首先访问第一个邻接节点,然后再以这个被访问的邻接节点作为初始节点,反问他的第一个邻接节点,可以这样理解: 每次都在访问完当前节点后首先访问当前节 阅读全文
posted @ 2021-08-16 21:48 笔锋 阅读(4199) 评论(0) 推荐(0)
摘要:13.8 平衡二叉树 如果给定一个数列{1, 2, 3, 4, 5, 6}, 我们生成二叉排序树的话,我们不难看出来,所有结点都是其父节点的右子节点,就像一条链表一样,那样,我们的查询效率将受到影响,甚至不如链表(因为我们要额外判断左子节点是否为空) 基本介绍: 平衡二叉树也叫平衡二叉搜索树(Sel 阅读全文
posted @ 2021-08-14 11:39 笔锋 阅读(68) 评论(0) 推荐(1)
摘要:二叉排序树介绍: BST(Binary Sort(Search) Tree),对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前结点的值小,右子节点的值比当前节点的值大。 如果相同:则可以将该节点的放在左子节点或右子节点上 13.7.1 二叉树的创建和遍历: package binaryso 阅读全文
posted @ 2021-08-13 19:54 笔锋 阅读(230) 评论(0) 推荐(0)
摘要:13.7.2 二叉排序树的删除 二叉排序树情况分为三种: 删除叶子节点 需要先找到要删除的节点 targetNode 找到targetNode的父节点 parent 确定 targetNode 是 parent的左子节点还是右子节点 根据前面的情况来对应删除 左子节点:parent.left = n 阅读全文
posted @ 2021-08-13 19:51 笔锋 阅读(454) 评论(0) 推荐(0)
摘要:13.6 赫夫曼编码解码 思路: 将 huffmanCodeBytes[] 重新转成 赫夫曼编码对应的二进制对应的字符串‘1010100010111...’ 将赫夫曼编码对应的二进制字符串‘1010100010111...’ 对照 赫夫曼编码 重新生成i like like like java do 阅读全文
posted @ 2021-08-13 09:20 笔锋 阅读(57) 评论(0) 推荐(0)
摘要:13.5 赫夫曼编码 基本介绍: 赫夫曼编码也翻译为 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,属于程序算法 赫夫曼编码是赫夫曼树在电讯通讯中的经典应用一致 赫夫曼编码广泛的应用与数据文件压缩,其 压缩率通常在20%~90%之间 赫夫曼是 可变字长编码(VLC)的一 阅读全文
posted @ 2021-08-12 20:56 笔锋 阅读(79) 评论(0) 推荐(0)
摘要:13.4 赫夫曼树 基本介绍: 给定 n 个权值作为 n 个叶子节点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,成这样的二叉树为 最优二叉树, 也成为 赫夫曼树(Huffman Tree),还有的书翻译为 霍夫曼树。 赫夫曼树是带权路径长度最短的树,权值较大的节点离跟结点较近。 重要概 阅读全文
posted @ 2021-08-11 10:20 笔锋 阅读(491) 评论(0) 推荐(0)
摘要:13.3.2 遍历前序线索树 我的个人理解:所谓的前序遍历就是每读到一个节点,就输出他的值,先左后右,这是一般二叉树的思路,但是,线索二叉树,子叶节点可能存在前驱和后继结点,那么,我们可以利用这一点,如果当前节点存在后继节点,我们直接在输出完当前节点后直接指向后继结点(按照一点的递归思想我们是一步一 阅读全文
posted @ 2021-08-10 21:21 笔锋 阅读(98) 评论(0) 推荐(0)
摘要:13.3.1 遍历中序线索树 **说明:**对前面的中序先躲的二叉树,进行遍历 **分析:**因为线索化后,各个结点指向有变化,因此原来的遍历方式不能使用这时需要使用新的方式遍历线索化二叉树,各个节点可以通过线性方式遍历。因此无需使用递归方式,这样也提高了便利的效率。 遍历的次序应当和中序遍历保持一 阅读全文
posted @ 2021-08-10 15:59 笔锋 阅读(154) 评论(0) 推荐(0)
摘要:13.2 线索化二叉树 在我们构建成一个二叉树的时候,我们发现叶子节点左右节点的指针并没有完全利用上。 如果我们希望充分利用各个节点的左右指针,让各个节点可以指向自己前驱,即父节点,于是线索化二叉树就应运而生 特点 n个节点的二叉链表中含有 n + 1公式 2*n-(n-1) = n + 1个空指针 阅读全文
posted @ 2021-08-10 14:40 笔锋 阅读(637) 评论(0) 推荐(0)
摘要:13.1.2 二叉树-删除节点(简单) 要求: 如果删除的节点是叶子节点,则删除该节点 入关删除的节点是非子叶节点,则删除该子树 思路: 因为我们的二叉树是单向的,没办法找到前驱节点,所以我们判断当前节点的子节点是否需要删除,而不能去判断当前节点是不是需要删除的节点 先判断当前节点的左子节点不为空, 阅读全文
posted @ 2021-08-09 21:03 笔锋 阅读(228) 评论(0) 推荐(0)
摘要:13.1.1 二叉树-查找指定节点 要求: 请编写前序查找,中序查找和后序查找 并分别使用三种查找方式,查找Node的id = 5 的节点 并分析各种查找方式,分别比较了多少次 思路: 前序查找: 先判断当前节点的id是否是要查找的 如果相等,则返回当前节点 如果不相等,则判断当前节点的左节点是否为 阅读全文
posted @ 2021-08-09 20:32 笔锋 阅读(118) 评论(0) 推荐(0)
摘要:二叉树遍历: 创建一棵二叉树 前序遍历 先输出当前节点(初始的时候是root节点) 如果左节点不为空,则递归继续前序遍历 如果右子节点不为空,则递归继续前序遍历 中序遍历 如果当前节点的左子节点不为空,则递归中序遍历 输出当前节点 如果当前节点的右子节点不为空,则递归中序遍历 后序遍历 如果当前节点 阅读全文
posted @ 2021-08-09 15:26 笔锋 阅读(57) 评论(0) 推荐(0)
摘要:12. 哈希表(散列) 哈希表不是算法,是一种数据结构 问题导入: 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id, 性别,年龄,住址...),当输入该员工的id时,要求查找到该员工的所有信息 要求:不使用数据库,尽量节省内存,速度越开越好 => 哈希表(散列) 12.1 哈希表基本 阅读全文
posted @ 2021-08-06 21:43 笔锋 阅读(141) 评论(0) 推荐(0)
摘要:8.递归 8.1 递归的概念 简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时让代码变得简洁。 **递归调用规则:** 1. 当程序执行到一个方法的时候,就会开辟一个独立的空间栈2. 每个空间的数据(局部变量),是独立的 1 public class 阅读全文
posted @ 2021-08-05 10:07 笔锋 阅读(79) 评论(0) 推荐(0)
摘要:7.7 中缀表达式转后缀表达式 思路: 初始化 两个栈,运算符栈s1和存储中间结果的栈s2 从左至右扫描中缀表达式 遇到操作数时直接压入s2 遇到运算符时,比较其与s1栈顶运算符的优先级 如果s1为空,或栈顶运算符为左括号"(",则直接将运算符压入s1 否则,若优先级比栈顶运算符的高,也将压入运算符 阅读全文
posted @ 2021-08-03 09:59 笔锋 阅读(122) 评论(0) 推荐(0)
摘要:7.5 前缀,中缀,后缀表达式(逆波兰表达式) 7.5.1 前缀表达式(波兰表达式) 前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前 举例说明:(3 + 4) X 5 - 6 对应的前缀表达式就是 - X + 3 4 5 6 7.5.1.1 前缀表达式的计算机求值 从 右至左扫描 表达式 阅读全文
posted @ 2021-08-02 20:35 笔锋 阅读(312) 评论(0) 推荐(0)