自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 查找算法这一块

基本思想:在二叉排序树基础上,通过旋转等操作保持树的平衡,确保树高尽量低,保证查找效率。- 适用场景:适用于插入、删除和查找操作频繁,且对查找效率要求稳定的场景,如STL中map和set容器的底层实现。- 基本思想:是二分查找的改进,根据要查找的关键字与查找表中最大、最小关键字的比较,自适应选择查找区间的中间点。非递归实现时为 O(1)。- 时间复杂度:平均为 O(\log n),若退化成链表(插入元素有序),最坏为 O(n)。- 时间复杂度:平均为 O(\log \log n),最坏为 O(n)。

2025-09-11 11:22:04 434

原创 排序算法这一块

不稳定,时间复杂度平均O(n log n)(最坏O(n²)),空间复杂度O(log n)(递归栈)。- 时间复杂度:衡量排序速度,关键看最坏/平均情况,常见量级为O(n²)(基础算法)、O(n log n)(高效算法)、O(n)(特殊场景算法)。稳定,时间复杂度O(d(n + k))(d为位数),空间复杂度O(n + k)。稳定,时间复杂度O(n²)(近乎有序时O(n)),空间复杂度O(1)。- 空间复杂度:衡量额外内存消耗,分为O(1)(原地排序,无需额外空间)和O(n)(需额外数组/空间)。

2025-09-11 10:48:25 409

原创 递归算法这一块

Java递归是方法直接或间接调用自身的算法,核心是将复杂问题分解为更小同类子问题,关键需满足3个条件:有明确终止条件(基线条件)、问题规模逐步缩小、子问题解能组合成原问题解。2. 递归关系(递推公式):原问题与子问题的关系,即如何将大问题拆为小问题。- 栈溢出:简化终止条件、用迭代或尾递归重写、调大JVM栈大小(不推荐);- 无限递归:检查终止条件是否正确、问题规模是否缩小、参数是否正确传递;- 数学问题:阶乘、斐波那契数列、幂运算、最大公约数(GCD);- 重复计算:添加缓存,或用动态规划、迭代改写。

2025-09-09 11:24:29 315

原创 队列这一块

Queue接口:位于 java.util 包下,定义了队列的基本操作方法,如 offer(E e) (将元素插入队列,成功返回 true ,队列满时返回 false )、 poll() (移除并返回队头元素,队列为空时返回 null )、 peek() (返回队头元素但不移除,队列为空时返回 null )等。元素按照其自然顺序(元素实现 Comparable 接口)或自定义的比较器顺序进行排序,每次出队的是优先级最高(最小或最大,取决于排序规则)的元素。2. Java中的队列接口和类。

2025-09-06 17:32:30 330

原创 栈知识点这一块

栈是一种先进后出(LIFO, Last In First Out) 的线性数据结构,仅允许在一端(称为“栈顶”)进行元素的插入(入栈)和删除(出栈)操作,另一端(栈底)固定不可直接操作。- 特点:继承自 Vector 类,是线程安全的,但因继承带来冗余方法(如 get(int index) 可直接访问非栈顶元素),破坏了栈的“操作受限”特性,实际开发中很少使用。3. 函数调用栈:JVM 中用栈存储方法调用关系,方法执行时入栈,执行完毕后出栈,保证方法调用的顺序(如递归调用依赖栈实现)。

2025-09-06 17:14:12 389

原创 线性表知识点

线性表是最基本、最常用的一种数据结构,它是由 n(n≥0) 个具有相同特性的数据元素(节点)组成的有限序列,数据元素之间呈“一对一”的线性关系(除首尾元素外,每个元素有唯一前驱和唯一后继)。- 优点:插入/删除操作高效(无需移动元素,仅需修改节点引用,头部/尾部操作时间复杂度 O(1) ,中间操作因需遍历找位置,时间复杂度 O(n) );- 存储原理:使用非连续的内存空间,数据元素(节点)通过“引用(指针)”连接,形成链式结构(Java 中 LinkedList 底层是双向链表)。

2025-09-06 16:36:05 780

原创 链表这一块

链表是一种非连续、非顺序的线性数据结构,通过“节点”存储数据,并通过“引用”(指针)连接各个节点,核心优势是插入和删除操作高效(无需移动大量元素),劣势是随机访问效率低(需从头遍历)。- 结构:每个节点包含“数据域”、“下一个节点引用( next )”和“上一个节点引用( prev )”,支持双向遍历。- 结构:尾节点的 next 指向头节点(单向循环),或头节点的 prev 指向尾节点(双向循环),形成闭环。- 尾节点(Tail):链表的最后一个节点,其引用域为 null (表示链表结束)。

2025-09-06 16:11:24 210

原创 Java 数据结构与算法概述

4. 与数组的关联:Java 集合底层多基于数组实现(如 ArrayList 、 HashMap ),数组是“静态结构”(固定大小),集合是“动态结构”(自动扩容),二者可通过 Arrays.asList() (数组转集合)、 list.toArray() (集合转数组)互转。- LinkedList :基于双向链表实现,增删快(仅需修改指针,O(1))、查询慢(需遍历,O(n)),同时实现 Deque 接口,可作为栈/队列使用。(返回索引,未找到返回负数)。

2025-09-05 11:41:30 378

原创 Java 数据结构与算法概述

4. 与数组的关联:Java 集合底层多基于数组实现(如 ArrayList 、 HashMap ),数组是“静态结构”(固定大小),集合是“动态结构”(自动扩容),二者可通过 Arrays.asList() (数组转集合)、 list.toArray() (集合转数组)互转。- LinkedList :基于双向链表实现,增删快(仅需修改指针,O(1))、查询慢(需遍历,O(n)),同时实现 Deque 接口,可作为栈/队列使用。(返回索引,未找到返回负数)。

2025-09-05 11:36:29 295

原创 结构化命令这一块/.

概念理解: [[ ]] 是对 test 命令的扩展,支持更多的操作符和更复杂的模式匹配。它可以判断文件是否存在、是否为目录、字符串是否为空、数值是否相等或大小关系等。- 概念理解:在一个 if 或 else 块中再嵌套另一个 if-then-else 结构,用于处理更复杂的条件判断逻辑。- 概念理解:使用逻辑运算符(如 && 表示逻辑与, || 表示逻辑或)将多个条件组合在一起进行判断。- 概念理解:这是 Shell 脚本中用于条件判断的基本结构。5. 双方括号内的判断。

2025-07-11 18:38:40 468

原创 shell脚本这一块/.

语法: wc 脚本名.sh ,输出行数、单词数、字节数等信息(如 wc test_0710.sh 显示 12 42 301 test_0710.sh ,即 12 行内容 ),可用于快速了解脚本规模。- 特点:作为计算器工具,弥补 expr 在复杂运算(如浮点运算)上的不足,脚本中可通过管道(如 echo "2.5 * 3" | bc )调用,拓展运算能力。- 示例: bash test_0710.sh 执行脚本,终端输出脚本内 echo 等命令结果。

2025-07-11 12:21:39 964

原创 用户管理和文件权限这一块/.

文件权限包括读(r)、写(w)和执行(x)三种权限,分别对应于用户(u)、组(g)和其他用户(o)。符号表示法使用 u 、 g 、 o 分别表示用户、组和其他用户,使用 r 、 w 、 x 分别表示读、写和执行权限,使用 + 、 - 、 = 分别表示添加、删除和设置权限。数字表示法使用三位数字来表示文件权限,其中每一位数字分别对应于用户、组和其他用户的权限。- -r :删除用户的同时删除其家目录和邮件目录。- -R :递归修改目录及其子目录和文件的所属组。- -d :修改用户的家目录。

2025-07-10 19:14:08 432

原创 环境变量这一块/.

输入 export MY_VAR="hello" ,可创建一个名为 MY_VAR 的环境变量,并将其值设置为 hello。- 概念理解:用于设置或显示环境变量,将变量导出为环境变量,使其在子进程中也能被访问到。- 输入 echo $PATH ,可查看 PATH 环境变量的值,即命令搜索路径。- 概念理解:用于显示所有的Shell变量,包括环境变量和局部变量。- 输入 echo $HOME ,会显示当前用户的主目录路径。- 输入 export ,会显示当前所有的环境变量及其值。

2025-07-10 11:52:13 304

原创 xshell这一块/.

在父 Shell 里执行 bash 命令,会创建 子 Shell 进程 ,子 Shell 继承父 Shell 环境变量,但操作默认不影响父 Shell。- history -a :把当前 Shell 新增的历史命令,追加写入 ~/.bash_history 文件(交互模式下,退出 Shell 会自动保存历史到文件, -a 可手动触发同步 )。- 执行 history -a 后,当前会话新增命令会写入 .bash_history ,再用 cat 查看,内容会同步更新,包含新增命令。

2025-07-09 09:25:15 415

原创 vim编辑器这一块/.

操作(Xshell 中): paste file1.txt file2.txt ,将 file1.txt 和 file2.txt 对应行合并输出,如文件 1 内容是 name1 22 、 name2 30 ,文件 2 是 name1 man 、 name2 woman ,执行后输出 name1 22 name1 man 等行。操作(Xshell 中):直接输入 echo "要输出的内容" ,如 echo "Hello Linux" ,终端会显示对应内容。

2025-07-06 18:47:30 370

原创 xshell基础指令这一块/.

ps -ef :全格式输出系统所有进程,含父进程关系(PPID ),示例: ps -ef | grep nginx 筛选 nginx 相关进程。- 实操流程:先 ps -ef | grep 进程名 查 PID,再 kill -9 PID 终止,截图命令执行前后进程变化(插入截图 )。- du -sh /var/log (汇总 /var/log 总大小, -s 汇总, -h 易读 );- Xshell 实操: df -h 查看系统分区,截图根分区(/ )空间占比(插入截图 )。

2025-07-03 22:57:55 1323

原创 Linux基础这一块/.

cp -r 源目录 目标路径 (如 cp -r dir1 /opt ):递归复制目录(含子内容 );- 实操:在 /home 执行 ls -la ,清晰列出所有文件(含隐藏)及详细属性。- ls -h :配合 -l 让文件大小更易读(如 1K 替代 1024 字节 )。- cp 源文件 目标路径 (如 cp file1.txt /tmp ):复制文件;- 用途:删除空目录(非空需先删内容或用 rm -r )。- ls -a :显示隐藏文件(以 . 开头 );

2025-07-02 19:42:34 376

原创 SSH这一块/.

2.确保虚拟机(如 Ubuntu 系统)开启 SSH 服务(可通过 sudo service ssh status 检查,未安装则 sudo apt install openssh-server ),且虚拟机与本地网络互通,记录虚拟机 IP( ifconfig 或 ip addr 查看)连接虚拟机后,在 Xshell 中点击“文件传输”按钮启动 Xftp,左侧本地文件、右侧虚拟机文件,通过拖拽即可上传/下载,实现便捷文件交互,弥补纯命令行操作文件的繁琐。“用户身份验证”填虚拟机用户名、密码。

2025-07-01 22:38:47 187

原创 Linux这一块/.

以 VMware 为例,它能在 Windows、macOS 等宿主系统上,创建独立的虚拟环境,安装 Linux、Windows 等 guest 操作系统。就像在一台电脑里“分身”出多台不同系统的电脑,各虚拟系统独立运行,互不干扰,方便测试软件、学习新系统,还能隔离风险。3.访问 VMware 官方网站(www.vmware.com ),找到对应产品(如 VMware Workstation Pro ),根据自身操作系统(Windows 或 macOS )选择版本下载。

2025-06-30 18:42:21 670

空空如也

空空如也

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

TA关注的人

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