- 博客(197)
- 资源 (3)
- 收藏
- 关注
原创 哈夫曼编码及实现
哈夫曼树根据排序方式不同,也可能不太一样,这样对应的哈夫曼编码也不完全一样,但是树的带权路径长度(WPL)都是最小的。哈夫曼编码后的字节数组:[-88, -65, -56, -65, -56, -65, -55, 77, -57, 6, -24, -14, -117, -4, -60, -90, 28]哈夫曼编码后的字节数组:[-88, -65, -56, -65, -56, -65, -55, 77, -57, 6, -24, -14, -117, -4, -60, -90, 28](1)生成哈夫曼树;
2024-04-24 05:41:20 562
原创 哈夫曼树及实现
在一棵树中,从一个节点往下可以到达的孩子或孙子节点之间的通路,通路中分支的数目称为路径长度。节点的带权路径长度为从根节点到该节点之间的路径长度与该节点的权的乘积;(Huffman Tree)又称为最优二叉树,带权路径长度最短的树,权值较大的节点离根较近,哈夫曼树主要应用于数据压缩和编码;权值越大的节点离根节点越近的二叉树才是最优二叉树。(2)选出权值最小的两棵树作为左右子树合并成一棵树,其根节点的权值为左右子树权值的和;(1)从小到大排序,把给定的n个节点看成n棵独立的树,每棵树只有一个节点;
2024-04-23 22:49:39 334
原创 平衡二叉树及实现
平衡二叉树(AVL树)又称为平衡二叉搜索树,可以保证高效的查询。平衡二叉树是一棵空树或者左右两个子树的高度差的绝对值不超过1并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。把二叉树上的节点的左子树深度减去右子树深度的值称为平衡因子(BF)。
2024-04-23 17:26:25 125
原创 二叉排序树及实现
二叉排序树(Binary Sort Tree, BST)又称为二叉查找树。在一般情况下,查询效率要比链表结构要高。对于二叉排序树中的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。如果有相同的值,可以将该节点放在左子节点或右子节点。
2024-04-20 21:31:34 201
原创 二叉树入门
节点:包含一个数据元素及若干指向子树分支的信息;节点的度:一个节点拥有子树的数目称为节点的度;叶子节点:没有子树的节点或者度为零的节点;分支节点:度不为零的节点;树的度:树中所有节点的度的最大值;节点的层次:从根节点开始,假设根节点为第一层,根节点的子节点则为第二层,一次类推;树的深度/高度:树中所有节点的层次最大值;有序树:如果树中各棵子树的次序是有先后次序,就称该树为有序树;无序树:如果树中各棵子树的次序没有先后次序,就称该树为无序树;
2024-04-18 15:51:35 650 1
原创 VMware扩容centos
查看可用块设备的信息以及显示它们之间的依赖关系,块设备有磁盘、闪存盘、CD-ROM等,但是不包括RAM盘的信息。查看发现在虚拟机中扩展的空间在sda中,需要分区。点击编辑虚拟机设置,选择磁盘,点击进行扩展。扩容磁盘,虚拟机扩容需要关机。向卷组中添加物理卷,动态扩展。使用新增的分区创建物理卷。(3)格式化新增的分区。
2024-04-15 23:06:29 334
原创 KMP算法Java实现
KMP算法是一种高效的字符串匹配算法,核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数已达到快速匹配的目的。通过一个next()函数实现,该函数包含了模式串的局部匹配信息,KMP算法的时间复杂度是O(m+n)。
2024-04-08 17:56:55 443
原创 贪心算法Java实现
贪心算法(贪婪算法)是一个遵循启发式解决问题的算法范式,核心思想是通过在每一步的选择中都选用当前步骤下最优的选择,期望结果是最优的算法。贪心算法得到的结果不一定是最优结果,但是都是相对接近最优解的结果。
2024-04-07 11:25:57 816
原创 Java图简单入门
对比其他数据结构,线性表局限于一个直接前驱和一个后继的关系,树只能有一个直接前驱也就是父节点,当我们需要表示多对多的关系时,就需要使用图。图是一种数据结构,顶点可以有零个或多个相邻元素,两个顶点之间的连接成为边。图的概念涉及顶点、边、路径、无向图、有向图和带权图等。
2024-04-06 23:08:50 211
原创 PyQt6从入门到放弃
事件目标是要被通知的对象;(1)QInputDialog提供了一个简单的对话框从用户获取输入,输入可以使字符串、数字或者列表中的项目。模块式非GUI的核心库,用来处理时间、文件、目录、各种类型的数据、流、URLs、mime类型、线程和进程。所有的事件处理器都有默认的实现,默认事件可能有自己的逻辑。以像素为单位指定每个小部件的位置和大小,调整窗口大小,窗口小部件的大小和位置不会改变。(4)事件对象包含一系列描述事件的属性,具体内容要看触发的事件。有窗口系统集成、事件处理、2D图形、基本图像、字体、文本的类。
2024-03-30 15:43:56 685 1
原创 Java代码静态代码检查checkstyle
checkstyle配置要插入到哪些模块,模块是树形结构,Checker模块是根。下一级别的模块包含FileSetChecks(接收一组输入文件并触发错误消息的模块)、Filters(过滤审查四件如错误消息的模块)、AuditListeners(报告接收到的事件的模块)。TreeWalker的操作方法是将每个Java源文件转化为抽象语法树,把结果传递给子模块检查树中的某些方法。给模块属性设置非默认值,定义module元素的property子元素,也要提供name和value属性。(2)加载预定义包中的类。
2024-02-03 21:25:42 1063 1
原创 python海龟绘图turtle
海龟绘图提供了一个实体“海龟”形象,假定它在地板上平铺的纸张上画线。使用海龟绘图可以编写重复执行简单动作的程序画出精细复杂的形状。
2024-01-27 20:44:55 489
原创 开源数据同步工具DataX
DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。DataX的特性。
2024-01-27 19:29:54 766
原创 Java自定义注解
元注解主要有@Target,@Retention,@Documented,@Inherited,是用来解释注解的注解。注解是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或运行时可以检测到这些标记而进行一些特殊的处理。@Documented表明该注解标记的元素可以被Javadoc或类似的工具文档化。@Inherited表名该注解标记的类的子类也拥有这个注解。@Target表示可以应用的java元素类型。(1)定义注解@MetaAnnotation。(2)定义注解@MyAnnotation。
2024-01-21 21:35:41 463
原创 使用java socket实现简易聊天室
服务端接收多个客户端的连接请求,同时也可以发送数据到客户端。使用socket发送数据,awt绘制图形界面。
2024-01-21 11:40:14 395
原创 Jol-分析Java对象的内存布局
Open JDK提供的JOL(Java Object Layout)工具为我们方便分析、了解一个Java对象在内存当中的具体布局情况。本文实验环境为64位HotSpot虚拟机。
2023-12-11 11:04:10 407
原创 MyBatis-Flex学习手册
MyBatis-Flex简介MyBatis-Flex是什么MyBatis-Flex是一个优雅的MyBatis增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以使用MyBatis-Flex链接任何数据库,其内置的QueryWrapper帮助我们极大的减少了SQL编写的工作的同时,减少出错的可能性。特征1、轻量除了MyBatis,没有任何第三方依赖、没有任何拦截器,其原理是通过SqlProvider的方式实现的。同时,在执行的过程中,没有任何的Sql解析(Parse)。这带来的几个好处:高
2023-09-24 09:24:11 2717 1
原创 python自动化Selenium的使用
Selenium可用于对网站进行功能测试、性能测试、兼容性测试等。Selenium WebDriver: Selenium WebDriver是一个可以直接控制浏览器的工具,提供了多种编程语言的接口,可以在不同的浏览器上进行测试。Selenium Grid: Selenium Grid是一个分布式测试工具,可以将测试用例分发到不同的计算机上进行测试,提高测试效率。Selenium IDE: Selenium IDE是一个基于浏览器的插件,用于录制和回放用户操作,可以生成自动化脚本,适用于初学者。
2023-09-03 17:33:33 664
原创 双向链表概念及实现
单向链表查找的方向只能是一个方向,而双向链表可以向前或向后查找。单向链表不能进行自我删除,需要靠辅助节点,而双向链表可以实现自我删除。
2023-09-02 10:11:05 123
原创 约瑟夫环实现
约瑟夫环小游戏:把小朋友按照编号1,2,3,…,n围成一圈,指定编号为k的小朋友从1开始报数,数到m的小朋友出队。接着他的下一位小朋友再次从1报数,以此类推,直到所有人都出队,产生了一个出队编号的序列。最后留在圈中的小朋友编号是:6。
2023-09-02 08:33:41 388
原创 栈及其应用
栈是一个先进后出的有序列表,允许插入和删除的一端是栈顶,固定的一端是栈底。栈的应用场景包括子程序调用、递归调用、表达式转换与求值、二叉树遍历、图的深度优先搜索算法等。
2023-08-20 13:39:25 170
原创 pygame贪吃蛇游戏
贪吃蛇游戏通过enter键启动,贪吃蛇通过WSAD进行上下左右移动,每次在游戏区域中随机生成一个食物,每次吃完食物后,蛇变长并且获得积分。
2023-08-05 21:53:50 589
原创 猜数字游戏
猜数字小游戏,在多少次以内猜中数字。游戏规则如下,随机给出【1,100】之间的数字,玩家有6次猜数的机会,猜中退出游戏;猜错重试,超过6次则游戏失败。
2023-08-03 21:53:05 54
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人