- 博客(10)
- 收藏
- 关注
原创 深入理解堆数据结构:从理论到Java实现
本文详细介绍了小顶堆的实现原理及其核心操作。堆是一种完全二叉树结构,通过数组存储实现高效访问,支持O(log n)时间的插入和删除操作。文章重点讲解了堆的四个核心操作:向上调整(siftUp)用于插入元素,向下调整(siftDown)用于删除元素,O(n)时间复杂度的建堆操作,以及高效的堆排序算法。同时提供了完整的Java实现代码,包括插入(offer)、删除(poll)和查看堆顶(peek)等基本操作。堆结构在优先队列、排序算法和Top K问题中具有广泛应用价值。
2026-03-24 08:30:00
712
2
原创 MySql数据库:索引概念与结构原理
数据库索引是优化查询性能的重要数据结构,通过创建额外的目录结构(如B+树)来避免全表扫描,显著提高查询速度。索引类似于书籍目录,能快速定位数据,但需要付出额外存储空间和维护开销的代价。索引适用于数据量大且查询频繁但修改较少的列。创建和删除索引可能消耗大量资源,需谨慎操作。MySQL的InnoDB引擎使用B+树实现索引,其多叉树结构降低树高,减少IO次数,同时叶子节点的链式结构支持高效范围查询。B+树的查询时间稳定,有利于业务逻辑的展开。
2025-10-19 22:49:25
1066
6
原创 Java ----类和对象(下)
在文件的最上方加上一个package 语句指定该代码在哪个包中。包名需要尽量指定成唯一的名字。通常会用公司的域名的颠倒形式(例如 com.abc.demo1 )。包名要和代码路径相匹配。例如:创建 com.abc.demo1 的包, 那么会存在一个对应的路径 com/abc/demo1 来存储代码。如果一个类没有 package 语句, 则该类被放到一个默认包中.默认包就是 idea里刚创建项目时的 src。什么是封装?
2025-04-10 20:57:58
744
6
原创 java----类和对象(上)
传统洗衣服注重的是洗衣服的过程,少了一个环节可能都不行。(面向过程)不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦。如果将来要洗鞋子,那就是另一种方式。按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。现代洗衣服四个对象之间交互完成,人不需要关心洗衣机是如何洗衣服和甩干的。面向对象)面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心,只需要将衣服放进洗衣机,倒入洗衣粉,启动开关即可,通过对象之间的交互来完成的。
2025-04-08 21:34:38
1162
4
原创 Java ----方法
方法是一个代码片段,类似c语言的函数是能够模块化的组织代码(当代码规模比较复杂的时候).做到代码被重复使用, 一份代码可以在多个位置使用.让代码更好理解更简单直接调用现有方法开发, 不必重复造轮子.修饰词 返回值类型 方法名(参数类型 形参名,参数类型 形参名...) {//方法体代码return 返回值;
2025-02-14 16:10:32
942
3
原创 初始Java
它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
2025-02-01 17:19:13
745
3
原创 C语言数据结构——栈和队列
一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。栈中的元素要遵守的原则。栈的插入操作称为压栈/进栈/入栈,栈的删除操作称为出栈,
2025-01-23 16:11:31
643
3
原创 C语言线性表————链表
(一)、无头单向不循环链表1.头插和头删,时间复杂度为O(1)(对比顺序表来说)(二)、带头双向循环链表1.从任意位置插入删除,时间复杂度都是O(1)2.带哨兵位的头(头节点不存数据):不需要改变实参,可以不用二级指针3.双向:方便找到节点的上一个节点,时间复杂度为O(1)4.循环:容易找到尾部指针,时间复杂度为O(1)空间按需给予,不存在空间浪费(对比顺序表来说)
2025-01-20 14:22:01
823
3
原创 C语言线性表——顺序表
优点1.尾插和尾删时间复杂度为O(1)2.支持随机访问缺点1.空间不够需要增容,需要消耗一些性能,且存在一定的空间浪费(增容后。2.头部和从指定位置插入删除的效率比较低,时间复杂度为O(n)。
2025-01-17 15:12:12
474
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅