自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 优先级队列和PriorityQueue

优先级队列是一种特殊的队列,每个元素都有一个优先级或者权重,与普通队列的先进先出不同,它按照优先级的大小从高到低进行排序,优先级最高的优先出队列。在任务调度,事件模拟中发挥着重要的作用。Java中的优先级队列是一种利用堆这种数据结构进行实现,按照数据的优先级顺序进行排序,可以任意的顺序插入,但是取出时按照规定好的优先级进行操作。

2024-10-17 20:13:01 460

原创 认识Java的异常

在实际的开发中,Java中的异常不能完全表示遇到的一些异常,这是就需要自定义一些异常类来满足开发的需求。我们根据空指针异常的源码对于自定义异常进行仿写super(s);super(s);那么总的实现是:if(!throw new userNameException("用户名错误!");if(!throw new PassWordException("密码错误!");System.out.println("登录成功!");try {

2024-10-16 17:17:04 584

原创 抽象类与接口

的。

2024-10-14 20:00:06 1025

原创 MySQL数据的增删改查

基于比较运算符和逻辑运算符,可以对复杂的条件进行过滤,从而达到要求,其中,区间查询,模糊查询以及null查询都是条件查询。限制查询结果集的条数,通过分页查询可以有效的控制一次查询出的结果集中的记录条数,可以有效的减少数据库的压力,同时对用户也比较友好。例如,查姓唐同学的成绩,%代表唐后面所有字符都被选中,类似还有%唐,%唐%,分别表示唐前面的字符被选中,唐左右的字符被选中。这是一个非常危险的操作,如果数据量太大,会消耗大量的内存和CPU资源,可能导致数据库服务器的性能下降。,特别是在多表查询的情况下。

2024-10-09 22:03:37 1284

原创 MySQL基本操作(1)

认识MySQL数据库,介绍基本数据类型以及库和表结构操作

2024-10-09 18:31:54 807

原创 MySQL事务

组成:行锁(Record Lock)以及间隙锁(Gap Lock)。行锁锁定索引记录本身,间隙锁锁定索引记录之间的间隙,以及索引记录之前和索引之后的间隙。它锁定了一个区间,可以防止其他事务在该区间内插入新的记录,从而避免幻读。比串行化更加的灵活,可以保证数据一致的情况下提高并发性能。

2024-10-04 21:07:24 869

原创 C语言实现红黑树

平衡树的搜索效率最高,但是由于平衡因子的限制,如果是进行插入和删除操作时,没有达到左右子树高度相差不超过1这个平衡条件,就会执行旋转操作使其达到平衡状态,频繁的调整会使其性能下降,那么如何弱化平衡条件,使其不在频繁的调整就可以很好的达到我们所需要的平衡呢?为了实现这一目的,红黑树应运而生。红黑树是一种,因此它也:任意节点所包含的值,大于左孩子的值,小于有孩子的值。不仅如此,它还有一些其他的特征。红黑树的特性:1.每个节点是红色或是黑色。2.根节点是黑色。

2024-10-01 12:27:19 624

原创 MySQL索引初探

注:MySQL是关系型数据库。设想一个场景,现在你要去新华字典里找一个你不认识的字或者去确定一个字的读音是否准确,你可以按照这个字的部首进行查询,或者是按照这个字的大致读音进行查询,利用这样的方法总能在新华字典里快速查出你想要的字。但是现在如果是换成另一种的“字典”,这本字典记录了所有现代汉字,但是只是仅仅记录了汉字,没有提供任何方便去查询的手段,那么这本字典可能就相对于新华字典来说,查询一个字没有那么的方便。在数据库中也是一样的,如果没有索引,就很难在数据库中高效的去查询数据。

2024-09-16 17:30:54 1237

原创 并查集和哈夫曼树

并查集是一种数据结构,用于处理不交集的合并以及查询问题。例如:以下的一张图中如何查询两个点是否相连,如何连接两个点,这都要用到今天的并查集。对于这两种操作,并查集合并和查询的其中两种,分别是quickFind和quickUnion。对与quickFind而言,它是将所有的元素进行ID分组管理,每一个元素对应一个ID号,若要是在查找时,只需要找ID号码是否相同即可,对于合并操作,直接将其中一组的ID号修改为另一组的ID号即可。

2024-09-09 19:07:07 1079

原创 C语言实现线索二叉树和搜索树以及平衡树

背景:一棵节点数目为n的二叉树,如果采用二叉链表的形势进行存储,每个节点有两个指针域,共有n-1个有效分支路径,那么则二叉链表中存在2n-(n-1) = n + 1个 空指针域我们对它进行中序遍历,得到顺序:DBEAC,可以得到A的前驱是E,A的后继是C,那么我们可不可以在遍历之前就得到节点的前驱和后继呢?如果得到,那么是不是查找效率就会大大提升。我们将某节点的空指针域指向它的前驱和后继。

2024-09-04 17:40:35 690

原创 数据结构--树(低阶树)

树是n个节点的有限集合,满足1.有且只有一个根节点;2.其余节点可以分为m个的子集,每一个子集也是一颗树,称为根的子树。

2024-09-03 18:56:49 969

原创 排序2(快排优化,计数排序以及归并排序)

2024-09-02 21:07:17 121

原创 排序1(插入,希尔,选择以及快排)

今天晚上更新完成^_^

2024-09-02 00:21:37 96

原创 认识String类

JVM创建了两个引用s1,s2,但是只是创建了一个对象(相同的字符串被共享),且两个引用指向了同一个对象,因此s1 == s2会返回true,因为==操作符对于引用类型比较是引用是否指向同一对象。不对,对象的不可变是指本身的数据或者本身的属性不会改变。由于String不能被修改,所有的更改都需要创建新的对象,需要创建新的对象,效率低下,引入StringBuild和StringBuff。在 Java 中的类,默认情况下,equlas()方法是比较对象的内存地址,即与==操作符相同,但是String 会。

2024-06-04 23:35:55 860

原创 初探面向对象--(Java版)

面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。生活中洗衣服:面向过程:需要自己写关于放衣服,开洗衣机,清洗衣服,烘干衣服的函数,注重洗衣服的整个过程,如果再增添一些其他的函数,对于整个洗衣服过程的开发和维护非常麻烦面向对象:我们把洗衣服过程分为两个类(人和洗衣机),定义的人 类中有放衣服,开洗衣机等函数(方法),定义的洗衣机 类有清洗和烘干的函数(方法),把这两个类定义好后,通过类创建对象,让对象去执行以上的方法。

2024-05-14 20:19:23 942

原创 C语言之文件操作

文件是一种持久性存储数据的方式。计算机的内存是临时的,而文件可以长期存储在硬盘或其他存储介质上,即使在计算机关闭后也可以保留数据。文件是一种存储数据的方式。在程序设计中,按功能分为程序文件(例如:可执行程序文件.exe,源程序文件.c,目标文件.obj)和设计文件(程序读写时的数据)两种。本次讨论数据文件。二进制数据的文件,其中的数据以二进制形式表示,而不是像文本文件那样使用可读的字符编码。

2024-03-28 20:27:32 339

原创 动态内存管理

二:sizeof(XXX) *n ,括号里可以放的取决于等号左边的类型,n表示申请几个。可以做到对动态开辟内存大小的调整,传入的参数为ptr,即调整的内存地址,size,即调整后的大小。(3)只需要传申请空间的大小。注意:(1)开辟空间后一定要检查,判断开辟的空间是否为空。与malloc类似,但是可以将初始空间的每个字节初始化为0。(2)由开发者自己定义返回的类型。(2)原有空间没有足够大的空间。向内存申请一段连续的空间,返回指向这段空间的指针。注意:(1)原有空间有足够大的空间。

2024-03-21 23:24:55 299 1

原创 整数和浮点数在内存中的存储

1. 2进制中满2进12. 2进制的数字每⼀位都是0~1的数字组成二进制转十进制 例如:1011(2)怎么转换呢?从右向左看起:分别为:2^0,2^1,2^2,2^3……那么1011(2) = 1 * 2^0 + 1 * 2 ^1 + 0 * 2^2 + 1 * 2 ^3 = 11那么十进制如何转换为二进制呢?例如:125(10)125去除2,舍去余数,用商继续除以2,直到商为0,将余数进行倒序排列,即得1111101由此可以引出,数据在内存中的存储。

2024-03-19 22:11:24 443 2

原创 初识结构体

结构体是一种用户自定义的数据类型,可以用来存储不同类型的数据项。结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量,如:标量、数组、指针,甚至是一些其他的结构体结构体的声明和定义。

2024-03-19 17:47:52 457 1

原创 C语言字符函数和字符串函数及内存函数的一些说明及实现

获取字符串的长度:传入的字符串指针开始,逐个检查字符,直到遇到字符串末尾的空字符 \0。

2024-03-16 14:41:25 324 1

原创 关于链表顺序表等一些理解(初版)

本篇文章大致梳理了顺序表到队列的一些操作(不全,以后会补)堆区:存放动态分配的内存,程序员通过调用malloccallocrealloc等函数手动申请内存,但是需要注意手动释放以避免内存泄漏。栈区:栈区存放函数调用相关的临时数据,例如函数的局部变量、函数参数和函数调用的上下文信息。栈的内存分配和释放由编译器自动管理,其生命周期与函数的执行周期相关。数据区:数据区是用于存放静态分配的全局变量、静态变量和一些常量的内存区。

2024-03-09 16:45:47 852

原创 指针的初版总结

首先,C语言的目标是对内存的访问。在计算机系统中,CPU和内存是相互依存、密切配合的两个重要组成部分,它们共同决定了计算机的运行效率和性能。CPU主要对指令进行解析,执行,受限于芯片体积,功耗等因素,CPU内部很难做到大存储,这样CPU要执行的指令和数据必须外置,那么CPU如何访问到指令和数据呢?CPU要对它们进行寻址,才能找到它们。C语言给地址起了新名字,称为指针。

2024-03-05 21:16:55 867

原创 扫雷--简单代码实现

首先,为了方便更改棋盘的大小,设计时定义变量ROW和COL用来表示行和列;由于有空地和雷区的分布,我们将空地表示为'0',雷表示为‘1’,但是不能向玩家展示,所以应该初始时进行掩盖,这里用“*”表示,为了方便,将棋盘进行分开,空地和雷区为一组,玩家进行扫除为一组;由于扫雷时扫到空地,周围显示雷的个数,为了使边界的雷容易表示,我们将玩家扫除那一组行和列进行处理,在增添第一行和最后一行,即ROW+2和COL+2;为了方便,我们使用set来初始'*',和'0'

2024-02-02 21:37:44 322

原创 C语言分支和循环

代码中用if-else的嵌套来展示if-else的一些用法,其中用自定义函数来限制用户的输入。

2024-01-24 21:03:03 769

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除