自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 中的暴力破解算法

暴力破解算法作为一种基础算法,具有简单直接、易于理解和实现的优点。它不需要复杂的数学推导或算法设计知识,对于一些规模较小、解空间有限的问题,能够快速有效地找到答案。例如在破解简单数字密码、解决小规模的背包问题,以及查找数组中特定两数之和等场景下,暴力破解算法可以轻松应对。​然而,暴力破解算法的缺点也十分明显。随着问题规模的增大,解空间会呈指数级增长,导致计算量急剧增加,算法的时间复杂度极高。

2025-05-23 11:11:47 1147

原创 Python Lambda 表达式

3.1 优势体现​首先,Lambda 表达式最大的优势就是简洁性。在处理一些简单的、临时性的逻辑时,无需定义一个完整的命名函数,能大幅减少代码量,让代码更加紧凑。例如在数据处理的一些中间步骤中,使用 Lambda 表达式配合map、filter等函数,可以使数据处理流程更加清晰直观,就像将一个个处理单元快速串联起来。​其次,Lambda 表达式增强了代码的灵活性。它可以方便地作为参数传递给其他函数,使得函数的功能更加通用化。

2025-05-21 19:28:02 747

原创 Python集合

学习Python集合这一周以来,我最初只是把它当作一种简单的去重工具,但随着深入使用,发现它远比我想象的要强大得多。记得第一次用集合给列表去重时,那种一行代码解决问题的快感,让我立刻喜欢上了这个数据结构。在实际项目中,集合真正展现了它的价值。上周处理用户数据时,我需要找出两个百万级用户列表的重合部分。如果使用列表嵌套循环,估计程序要跑好几分钟。而改用集合的交集运算后,不到一秒就出了结果。这种效率上的巨大提升,让我深刻理解了选择合适数据结构的重要性。集合的无序特性曾经让我有些困扰。

2025-05-19 16:33:40 917

原创 python字典

字典是 Python 中最灵活的数据结构之一,它通过 “键值对” 的映射关系,让数据存储和查询变得高效又直观。这段时间学习字典的过程,就像掌握了一把 “数据组织的万能钥匙”,既有基础操作的熟悉,也有进阶场景的思考,以下是一些真实的体会:一、为什么说字典是 “数据关联的神器”?字典的核心优势在于快速定位。比如想从一堆学生信息中找到某个学号对应的姓名,用列表需要逐个查找,而字典只需通过学号(键)直接 “提取” 姓名(值),这种 “直达式” 操作节省了大量时间。

2025-05-16 15:17:38 711

原创 深入掌握 Python 切片操作:解锁数据处理的高效密码

刚开始学 Python 时,我一直没把切片操作当回事,觉得不就是用冒号分割几个数字吗?直到在处理一个项目数据时,因为切片参数设置错误,导致程序输出一堆莫名其妙的结果,Debug 了好久才发现问题,这才意识到切片操作远比表面看起来复杂。Python 的切片操作语法简单,object[start🔚step],但这三个参数组合起来变化无穷。最容易出错的就是step参数,正负数决定取值方向。我有次想倒序输出列表,写成my_list[1:5:-1],结果啥都没输出。

2025-05-14 20:32:17 876

原创 Python 字符串

在 Python 编程领域中,字符串作为最基础且高频使用的数据类型,其特性与操作方法贯穿于程序开发的各个环节。深入理解并熟练运用字符串相关知识,不仅能够提升代码编写的效率,还能确保程序在数据处理与展示方面的准确性。从字符串的本质来看,其不可变特性是需要着重把握的关键。这意味着在实际开发中,任何看似对字符串的修改操作,底层都是通过创建新的字符串对象来完成的。例如使用replace方法替换字符,或通过切片操作获取子字符串,均会产生新的内存空间。

2025-05-12 17:45:16 745

原创 前端自学入门:HTML 基础详解与学习路线指引

HTML 全称为 “Hyper Text Markup Language(超文本标记语言)”,是构建网页的标准语言。它并非编程语言,而是用于描述网页内容和结构的标记语言。“超文本” 涵盖了流媒体、图片、声音、视频等丰富内容。HTML 由 W3C(世界万维网联盟)制定规范,中文帮助文档可在W3school查询。HTML 通过标签来定义网页内容,格式为<标签符>内容</标签符>。学习 HTML 的核心,就是掌握各类标签的用法,从而搭建网页的 “骨架”。且 HTML 不区分大小写。

2025-05-09 22:17:39 1863

原创 Java 继承

方法重写是子类对继承自父类的方法进行重新实现,需要严格遵守以下规则:方法签名(方法名、参数列表、返回类型)必须与父类完全一致访问权限不能比父类更严格抛出的异常不能比父类更宽泛System.out.println("绘制图形");@OverrideSystem.out.println("绘制圆形");学习 Java 继承的过程,就像是一场充满挑战与惊喜的探索之旅。起初,面对继承的概念和语法,我常常感到困惑,甚至会陷入 “为了继承而继承” 的误区。

2025-05-07 23:33:59 822

原创 C++ 实现二叉搜索树:从原理到实践

在二叉搜索树的 C++ 实现过程中,每一个操作都蕴含着对数据结构特性的深刻理解。插入操作看似简单,却需要时刻关注树的结构变化。当向空树插入第一个节点时,直接将其赋值给 root 指针,这是整个树结构构建的起点;而在非空树中插入节点时,通过 parent 和 cur 两个指针的配合,不断比较新节点的 key 值与当前节点 key 值的大小关系,向左或向右移动 cur 指针。

2025-05-05 23:36:28 910

原创 数据结构之图(Graph)详解

图(Graph)由顶点的有穷非空集合和顶点之间边的集合构成,通常表示为(G(V,E))。其中,G代表一个图,V是图G中所有顶点的集合,E则是图G中边的集合。顶点作为图中的基本元素,可以代表各种实体,比如社交网络中的用户、地图中的地点等;而边则表示顶点之间的连接关系,例如社交网络中用户之间的关注关系,地图中地点之间的道路连接。此外,与顶点相关的重要概念还包括度、入度和出度。度指的是和某个顶点相连接的边的总条数;在有向图中,入度是以该顶点为终点的边的条数,出度是以该顶点为起点的边的条数。

2025-05-03 14:50:01 1919

原创 深入理解二叉平衡树:原理、实现与应用

二叉平衡树通过严格的平衡条件,将查找、插入和删除操作的时间复杂度稳定在 (O(\log n)),相比普通二叉搜索树,有效避免了极端情况下退化为链表导致性能骤降的问题,在数据库索引、编译器符号表管理等对查询效率要求高的场景中表现出色。以数据库索引为例,当用户频繁通过某个字段检索数据时,二叉平衡树能快速定位到对应记录,大大提升查询响应速度;在编译器中,符号表使用二叉平衡树管理变量和函数信息,可高效完成查找、插入和删除操作,保障编译过程的流畅性。

2025-05-01 22:40:51 714

原创 c++链表

/ 定义链表节点int val;在上述代码中,ListNode结构体包含两个成员,val用于存储节点的数据,next是一个指针,指向下一个节点。构造函数ListNode(int x)用于初始化节点的值,并将next指针初始化为NULL,表示当前节点是链表的最后一个节点。链表的动态性是其最大的优势之一。与数组需要预先分配固定大小的内存不同,链表可以根据实际需求动态地分配和释放内存。

2025-04-28 21:19:29 736

原创 list 容器

在 C++ 编程中,list容器以其独特的双向循环链表底层结构,为开发者提供了一种高效处理数据插入和删除操作的工具。通过对其各项基本操作的深入学习与实践,我们能够更全面地认识list的优势与局限,从而在实际应用中做出更为合理的选择。优势回顾与应用拓展list最大的优势在于其出色的插入和删除性能。无论是在列表的头部、尾部还是中间位置进行元素的插入或删除,都能在常数时间复杂度内完成,这得益于链表结构只需修改指针指向,无需移动大量元素。

2025-04-25 11:08:08 1657

原创 DFS算法与BFS算法

深度优先搜索算法属于图算法家族中的一员,其运行过程与树的先序遍历有着异曲同工之妙。以图 1 的无向图为例,若从顶点 V1 开始执行深度优先搜索遍历:首先标记 V1 为已访问;接着访问其邻接点 V2 并标记,再深入访问 V2 的邻接点 V4、V8、V5;当遍历到 V5 时,发现其所有邻接点均已访问,便回溯至 V8,检查是否存在未访问邻接点,若没有则继续回溯至 V4、V2、V1;在 V1 处找到未访问的顶点 V3,进而访问 V3 及其邻接点 V6、V7;

2025-04-23 10:52:33 773

原创 c++----map容器

在 C++ 编程领域中,map容器凭借其独特的数据结构和高效的操作性能,成为处理键值对数据的得力工具。map容器基于红黑树实现,这赋予了它在插入、删除和查找操作上对数级别的时间复杂度优势,使得数据的动态管理变得高效而稳定。红黑树的特性保证了树的大致平衡,避免了普通二叉搜索树在极端情况下退化为链表,从而确保了操作性能的稳定性。从功能特性来看,map容器的键值唯一性和自动排序功能是其核心亮点。

2025-04-21 20:42:21 748

原创 哈希表的使用

在完成哈希表线性探测的 C++ 实现过程中,我经历了从理论认知到代码实践的完整探索,这一过程不仅深化了对数据结构的理解,也让我对编程中的权衡取舍有了更深刻的感悟。起初,哈希表 “以空间换时间” 的设计理念让我眼前一亮。通过哈希函数将关键字直接映射到存储位置,理想状态下能实现 O (1) 的查询效率,这几乎颠覆了我对传统数据结构的认知。但随着学习深入,我意识到哈希冲突是无法回避的现实问题。线性探测法虽然简单直观,只需按顺序逐个探查空闲位置,但它带来的堆聚现象却成为性能瓶颈。

2025-04-18 12:05:30 800

原创 c++的vector

vector 容器作为 C++ STL 中极为重要的数据结构,宛如一把瑞士军刀,为开发者在处理数据存储与操作时提供了多样化且强大的功能。其设计理念融合了数组的高效访问特性与动态内存管理的灵活性,在不同的编程场景中都展现出卓越的适用性。从动态扩展机制来看,这一特性无疑是 vector 相较于普通数组的巨大优势。在实际项目中,数据量的变化往往难以预估。以开发一个日志记录系统为例,起初可能只需记录少量关键信息,但随着系统规模扩大与功能增加,日志数据量会呈指数级增长。

2025-04-16 11:03:41 664

原创 数据结构------树

树(Tree)**是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中: 1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、…、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。1)根结点是唯一的,不可能存在多个根结点,数据结构中的树只能有一个根结点。2)子树的个数没有限制,但它们一定是互不相交的。树作为一种基础的数据结构,被严谨地定义为 n(n≥0)个结点的有限集。

2025-04-15 11:20:11 1093

原创 C++中栈的实现与操作

在C++中,栈是一种非常重要的数据结构,它遵循“先进后出”(LIFO)的原则。栈的应用非常广泛,例如在函数调用中用于保存局部变量、在表达式求值中用于保存操作数等。本文将详细介绍栈的基本操作,并通过代码实现来帮助读者更好地理解栈的原理。

2025-04-11 23:19:03 423

原创 队列的使用

例如,队列只能从头部移除元素,如果需要随机访问或删除队列中的元素,队列就不太适合了,这时可能需要使用其他数据结构,如数组或链表。需要注意的是,底层容器必须提供 front()、back()、push_back()、pop_front()、empty() 和 size() 这些操作,因为队列的基本操作是基于底层容器的这些操作来实现的。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的,这种方式可以避免不必要的拷贝操作,提高性能。back():返回队列中最后一个元素的引用。

2025-04-09 10:50:18 872

原创 Map函数使用

在 C++ 里,map属于键值对容器,其数据均以成对形式存在。使用时需包含头文件#include。每一对数据里,首个值称作关键字(key),且每个关键字在map里只能出现一次;第二个值则是该关键字对应的数值(value)。//所在头文件:<map>, std::map 类模板, std::map 通常由二叉搜索树实现。map内部采用红黑树实现。红黑树并非严格的平衡二叉搜索树,与严格平衡的 AVL 树有所不同。红黑树具备自动排序功能,所以map内的全部元素都是有序的。

2025-04-07 20:38:11 1171

原创 优先级队列的实现

优先级队列是一种重要的数据结构,对于存储其中的元素,总是选择优先级最高的先出队,在优先队列中,每个元素都有一个与之关联的优先级,高优先级元素会排在队首,低优先级元素排在队尾。实现优先队列的常用方式是使用堆排序实现。堆可以分为大顶堆和小顶堆,大顶堆的根节点总是大于左右节点,小顶堆的根节点总是小于左右节点。根据这个规则,可以通过不断地插入和删除操作,保证堆的有序性。实现优先级队列可以直接使用c++中的STL库中的优先级队列实现,也可以通过堆排序,可以分成大顶堆和小顶堆,实现优先级高的先出队。

2025-04-04 14:49:32 982

原创 二叉排序树的基本操作以及应用

二叉排序树的建立对于查找和删除的实现更加容易实现,它的速度更快,因而它对数据的查找删除十分重要,所以我们应该掌握这种二叉排序树。

2025-04-02 21:07:37 460

空空如也

空空如也

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

TA关注的人

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