自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小瑾的博客

⛳ 你好哇,我是小瑾,是一名在校生~ ⛵目前博文包含课程设计、csp刷题、算法介绍、当下科技热点分享、网站软件推荐等等哦,还会更新学习到的深度学习、视觉等方面的知识~

  • 博客(118)
  • 收藏
  • 关注

原创 插入排序(Insertion Sort)

插入排序是一种简单直观的排序算法,其基本思想是将未排序的元素逐个插入到已排序的序列中,直到所有元素有序。具体步骤包括:1. 将数组的第一个元素视为已排序序列;2. 从第二个元素开始,依次与已排序序列中的元素从后向前比较;3. 若当前元素较小,则将已排序元素向后移动,直到找到合适位置插入;4. 重复上述步骤,直到整个数组有序。插入排序的时间复杂度在最好情况下为O(n),最坏和平均情况下为O(n²),空间复杂度为O(1),且是稳定的排序算法。

2025-05-22 09:59:07 345

原创 堆排序(Heap Sort)

堆是一种完全二叉树,分为最大堆和最小堆。最大堆中每个节点的值大于或等于其子节点,最小堆则相反。堆通常用数组实现,父子节点的索引关系可通过公式计算。堆排序的步骤包括构建初始堆和排序过程。构建初始堆时,从最后一个非叶子节点开始,向前遍历并执行堆化操作,确保子树满足堆的性质。排序过程中,交换堆顶与末尾元素,缩小堆范围并重新堆化,直到堆中只剩一个元素。堆排序的时间复杂度为O(n log n),空间复杂度为O(1),是一种不稳定的排序算法。

2025-05-22 09:48:48 452

原创 希尔排序(Shell Sort)

希尔排序是一种改进的插入排序算法,其核心思想是通过将原始列表分割成多个子序列,先使这些子序列基本有序,然后再对全体记录进行直接插入排序。与普通插入排序相比,希尔排序的改进在于其对基本有序的数组效率更高,且每次移动的步长更大,从而提高了排序效率。

2025-05-20 09:47:07 681

原创 快速排序(Quick Sort)

快速排序是一种高效的分治算法,其核心思想是通过选择一个基准值将数组分为两部分,左边部分的元素均小于等于基准值,右边部分的元素均大于等于基准值,然后递归地对左右两部分进行排序,直到子数组长度为1或0。关键步骤包括选择基准值、分区操作和递归排序。性能分析显示,快速排序在最优和平均情况下的时间复杂度为O(nlogn),最坏情况下为O(n²),空间复杂度在最优情况下为O(logn),最坏情况下为O(n)。快速排序是一种不稳定的排序算法。

2025-05-20 09:34:15 1284

原创 查找典型例题

本篇博客通过三个实际例题展示了查找算法的应用。首先,使用快速排序算法解决了“求第k大的数”问题,通过排序后直接输出第k大的元素。其次,通过冒泡排序和遍历查找,解决了“查找三个数组的最小共同元素”问题,确保找到三个数组中共同的最小元素。最后,利用冒泡排序在“查找循环顺序数组的最小元素”问题中,通过排序后输出数组的最小值。每个问题都提供了详细的代码实现和解释,帮助读者理解算法的具体应用。

2025-05-19 10:17:46 318

原创 二叉查找树(BST)

二叉查找树(BST)是一种特殊的二叉树,其每个节点的左子树值小于该节点,右子树值大于该节点。BST的基本操作包括查找、插入和删除,其中删除操作较为复杂,需根据节点子节点数量采取不同策略。BST的性能在平衡情况下为O(logn),但在最坏情况下可能退化为O(n)。BST的扩展应用包括AVL树、红黑树、伸展树和Treap等,它们通过不同机制保持树的平衡。

2025-05-19 10:07:58 1212

原创 哈希查找详解

哈希查找是一种基于哈希表的高效查找算法,通过哈希函数将键映射到表中的位置,实现快速查找。哈希表通过哈希函数将键映射到特定位置,实现快速数据存取。哈希函数将任意大小的数据映射到固定大小值,需满足计算简单、均匀分布和确定性。

2025-05-16 10:05:50 732

原创 二分查找详解

二分查找是一种高效的搜索算法,其核心思想是“分而治之”。通过将数组中间元素与目标值比较,逐步缩小搜索范围,直到找到目标或确定其不存在。二分查找的时间复杂度为O(logn),空间复杂度为O(1)(迭代法)或O(logn)(递归法)。

2025-05-16 09:54:59 218

原创 拓扑排序例题

✍️上篇博文已经介绍了拓扑排序的概念,这篇博文我还将分享几条拓扑排序的例题,有忘记的概念可以去看我上一条博文。

2025-05-16 09:45:59 301

原创 拓扑排序详解

给定一个有向无环图(DAG),拓扑排序是将图中所有顶点排成一个线性序列,使得对于图中任意一条有向边(u → v),u在序列中总是出现在v的前面。

2025-05-16 09:41:11 509

原创 有向无环图的判定

第一行包含两个整数N、M,表示该图共有N个结点和M条有向边。(N <= 5000,M <= 200000)【题目描述】给定无权有向图G(V,E),请判断G是否是一个有向无环图(DAG)。接下来M行,每行包含2个整数{u,v},表示有一条有向边(u,v)有环输出“not DAG”,无环输出“DAG”

2025-05-15 09:40:00 187

原创 欧拉回路详解

欧拉路径和欧拉回路是图论中的重要概念。欧拉路径是指经过图中每一条边且每一条边只经过一次的路径,而欧拉回路则是起点和终点相同的欧拉路径。

2025-05-15 09:37:32 618

原创 弗洛伊德算法Floyd

对于下面一张若干个城市,以及城市之间距离的地图,请采用弗洛伊德算法求出所有城市之间的最短路径。​的动态规划算法,可以计算有向图或负权图(但不能有负权回路)中所有顶点之间的最短路径。1)对于图中的每一对顶点 (i, j),考虑所有可能的中间顶点 k。3)则更新 D[i][j] = D[i][k] + D[k][j]2)如果 D[i][k] + D[k][j] < D[i][j]2)如果 i 和 j 之间有边,D[i][j] = 边权。1)如果 i == j,D[i][j] = 0。🍮能够检测图中是否存在。

2025-05-14 09:41:09 915

原创 迪杰斯特拉算法Dijiskra

对于第i行的第j个整数,如果大于0,则表示第i个顶点有指向第j个顶点的有向边,且权值为对应的整数值;在常用的单源点最短路径算法中,迪杰斯特拉算法是最为常用的一种,是一种按照路径长度递增的次序产生最短路径的算法。在带权有向图G中,给定一个源点v,求从v到G中的其余各顶点的最短路径问题,叫做单源点的最短路径问题。其中n不超过50,s小于n。4 1 **//这里的1表示第2个顶点,0-1-2-3共计4个顶点,下图为有向图的邻接矩阵。1)维护两个集合:已确定最短路径的节点集合(S)和未确定最短路径的节点集合(U)

2025-05-14 09:32:39 501

原创 Prim最小生成树

已知含有n个顶点的带权连通无向图,采用邻接矩阵存储,邻接矩阵以三元组的形式给出,只给出不包括主对角线元素在内的下三角形部分的元素,且不包括不相邻的顶点对。请采用Prim算法,求该连通图从1号顶点出发的最小生成树的权值之和。(注意这里顶点的序号是从1到n,而不是0到n-1,程序里要小心!最小生成树是指连接图中所有顶点的边的权重之和最小的树。,将该边加入生成树,并将对应的顶点加入已选集合。①找出连接已选集合和未选集合的最小权重边。求解的最小生成树的各条边、边的权值之和。④更新未选顶点到已选集合的最小距离。

2025-05-13 09:43:18 425

原创 图论——典型例题

警察抓到了 n 个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。请你根据已知罪犯之间的关系,确定犯罪团伙的数量。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。根据输入的图的邻接矩阵A,判断此图的连通分量的个数。

2025-05-13 09:34:38 946

原创 图论——图的遍历

本文介绍了图的基本概念、分类、术语、存储结构以及深度优先遍历(DFS)和广度优先遍历(BFS)算法。图由顶点和边组成,分为无向图、有向图、带权图等类型。图的存储结构包括邻接矩阵和邻接表,分别适用于稠密图和稀疏图。DFS通过递归或栈实现,沿着一条路径深入访问顶点,直到无法继续再回溯;BFS则通过队列实现,按层次顺序访问顶点。文章还提供了DFS和BFS的典型例题及代码实现,展示了如何创建图、进行遍历并输出结果。

2025-05-12 09:39:38 1902

原创 正则二叉树

🐣每个节点要么是叶子节点(没有子节点)🐤要么恰好有两个子节点(一个左子节点和一个右子节点)🐥换句话说,正则二叉树中不存在只有一个子节点的节点。

2025-05-12 09:20:27 530

原创 数据结构期末复习-哈夫曼树

其中n不超过100。第二行中有n个用空格隔开的正整数,分别表示n个字符的权值,依次按照abcd...的默认顺序给出。【问题描述】读入n个字符所对应的权值,自底向上构造一棵哈夫曼树,自顶向下生成每一个字符对应的哈夫曼编码,并依次输出。【问题描述】 输入一串正整数,正整数之间用空格键分开,请建立一棵哈夫曼树,以输入的数字作为叶子节点,求这棵哈夫曼树的带权路径长度。如出现相同权值的,则先出现的在左子树,即下标小的在左子树。【输入形式】 首先输入正整数的个数n,然后是对应的n个正整数,正整数个数不超过10个。

2025-05-10 12:17:37 438

原创 数据结构期末复习-二叉树(3)

⛅️ 上篇博文我们继续学习了二叉树的典型例题,这里我们将继续一些其它的二叉树的经典案例,如果遇到忘记的概念,可以去我的上两篇博文看看哦~

2025-05-10 12:01:44 210

原创 数据结构期末复习-二叉树(2)

⛅️ 上篇博文我们已经学习了二叉树的基本概念和一些典型例题,这里我们将继续学习二叉树的经典案例,如果遇到忘记的概念,可以去我的上一篇博文看看哦~

2025-05-09 09:44:20 310

原创 数据结构期末复习-二叉树(1)

二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树有多种类型,包括满二叉树、完全二叉树、二叉搜索树(BST)、平衡二叉树(AVL树)和堆。二叉树的遍历方式有前序遍历、中序遍历、后序遍历和层序遍历,每种方式都有其特定的应用场景。

2025-05-09 09:28:52 679

原创 九宫格数独游戏

【问题描述】 数独是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9X9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。要求使用合适的数据结构和算法,求解出所有剩余空格的数字。【输入形式】 输入为9X9的二维数组,每个数字均为0-9之间的数字,其中0表示该位置的数字为未知。【输出形式】 输出为9X9的二维数组,每个数字均为1-9之间的数字,满足。

2025-05-08 09:36:11 248

原创 数据结构期末复习-稀疏矩阵

这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成。⛵目前博文包含课程设计、csp刷题、算法介绍、当下科技热点分享、网站软件推荐等等哦,还会更新学习到的深度学习、视觉等方面的知识~(如果发现你和博主是一个学校,那么仔细找找,也许会找到许多你需要的东西✌️)第一排为分别为A、B元素的个数,以下各排分别输入对应的三元组,头m组为A中的元素,接下来为B的元素,同一个矩阵的元素按照行递增排列,第一行规定为1,同一行的元素按照列递增排列,第一列规定为1。

2025-05-08 09:32:11 345

原创 数据结构期末复习-队列(1)

【问题描述】已知Q是一个非空队列,S是一个空栈。仅使用少量工作变量以及对队列和栈的基本操作,编写一个算法,将队列Q中的所有元素逆置。从第3行开始,每行首尾为1,中间元素为上一行相邻两数之和,通过队列尾部指针计算并入队。:利用队列的先进先出特性,通过动态计算生成每一行的数值并存储,最后按格式输出。:按层级从队列中取出元素打印,首行单独处理,后续每行元素数与行号对应。【输入形式】输入的第一行为队列元素个数,第二行为队列从首至尾的元素。函数中,从数组末尾向前遍历输出,模拟队列逆置的效果。分别表示队头和队尾。

2025-05-07 09:44:41 209

原创 数据结构期末复习-栈(2)

(输入输出序列皆为整数且没有重复的数字,如果一个数字在输入序列中没有出现,那么其在输出序列中也不会出现)【样例说明】第一行输入的第一个数字是序列的长度,1 2 3 4 5 输入序列,以空格隔开,输出的总的出栈次数。【输入形式】第一行为输入序列的长度,然后为输入序列的数字;【问题描述】给出一个堆栈的输入序列,试判断一个序列是否能够由这个堆栈输出。检查栈是否为空,如果为空则返回false(没有匹配的左括号)如果栈不为空,说明有未匹配的左括号,返回false。【输出形式】如果是一个出栈序列,则返回总的。

2025-05-07 09:36:10 243

原创 数据结构期末复习-栈(1)

【问题描述】试写一个算法,识别依次读入的一个以“@”为结束符的字符序列是否为形如 “序列1&序列2” 模式的字符序列。例如,“ a+b&b+a ”是属该模式的字符序列,而 “1+3&3-1”则不是。⛵目前博文包含课程设计、csp刷题、算法介绍、当下科技热点分享、网站软件推荐等等哦,还会更新学习到的深度学习、视觉等方面的知识~(如果发现你和博主是一个学校,那么仔细找找,也许会找到许多你需要的东西✌️)【问题描述】栈的应用,给定一个以“#”作为结束符的算式,求出算式的结果。【输出形式】输出表达式运算的结果。

2025-05-06 11:23:27 901

原创 数据结构期末复习-循环链表案例

数据结构循环链表的介绍

2025-05-06 11:09:41 166

原创 软件工程期末复习

内容涵盖软件工程核心知识体系。全文分为十个章节,从软件工程概述、开发过程模型到项目管理,层层递进。重点解析了瀑布模型、原型模型等经典开发模型,深入探讨结构化分析与设计方法,强调模块"高内聚低耦合"原则。详细整理了软件测试策略(黑盒/白盒测试)、面向对象分析与设计方法,以及MVC架构特点。配有清晰的图示说明和重点标注,作为软件工程课程的复习参考资料,可以帮助快速掌握关键概念和方法论。

2025-05-05 16:22:49 1920

原创 数据结构期末复习-单链表代码案例

单链表是一种由多个节点组成的线性结构,每个节点包含两个部分:数据域(data):存储具体的数据元素;指针域(next):存储指向下一个节点的指针。整个链表通过首节点开始,逐个指向后继节点,最后一个节点的 next 指针为空(NULL),表示链表结束。

2025-05-05 09:35:29 455

原创 数据结构期末复习-顺序表代码案例

顺序表是用一组地址连续的存储单元依次存储线性表的数据元素的结构。每个元素在表中都有唯一的前驱和后继(第一个元素无前驱,最后一个元素无后继)。

2025-05-05 09:23:47 302

原创 差分算法——思想and例题

输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c,表示一个操作。共一行,包含 n 个整数,表示最终序列。1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000输出样例: 代码实现:二维差分(差分

2024-12-10 21:35:05 896

原创 前缀和算法——思想and例题

✨前缀和算法是一种常见的算法思想,主要用于快速计算一个数组中某一段子数组的和。它通过预处理一个前缀和数组,使得后续查询的复杂度从 O(n)降到 O(1)。以下会分别从一维和二维的角度来解释前缀和算法的思想,从易到难逐步深入。

2024-12-10 20:54:44 608

原创 归并排序——思路and例题

⌨️归并排序(Merge Sort)是一种稳定的排序算法,基于分治法它将数组分成小部分分别排序,然后合并这些有序部分形成最终的有序数组。

2024-12-10 19:54:22 303

原创 快速排序——思路and例题

⭐️快速排序(Quicksort)是一种分治法(Divide and Conquer)的排序算法,具有高效的平均时间复杂度和良好的实际性能,是一种不稳定排序。

2024-12-10 19:26:31 717

原创 CSP CCF 202312-1 仓库规划 C++满分题解

⛵目前博文包含课程设计、csp刷题、算法介绍、当下科技热点分享、网站软件推荐等等哦,还会更新学习到的深度学习、视觉等方面的知识~⛳ 你好哇,我是小瑾,在校大学生一位哦~✍关注我,让你的代码之旅不再孤独!⛄一个希望与大家携手共进的小博主。

2024-07-31 09:59:14 332

原创 python 综合GUI编程-学生信息管理

✅ Python GUI编程(图形用户界面编程)允许开发人员创建具有图形界面的应用程序,使用户能够通过视觉元素(如按钮、文本框、标签等)与程序进行交互。

2024-07-15 11:00:38 588

原创 python 简单GUI编程-学生成绩统计

✅ Python GUI编程(图形用户界面编程)允许开发人员创建具有图形界面的应用程序,使用户能够通过视觉元素(如按钮、文本框、标签等)与程序进行交互。

2024-07-15 10:56:49 383

原创 pycharm实用库推荐,玩转pycharm,一篇就够啦~

PyCharm 是由 JetBrains 开发的一款强大的 Python 集成开发环境(IDE),为 Python 程序员提供了智能代码编辑、调试器、集成工具、测试支持、Web 开发支持、数据库工具和丰富的插件生态系统等功能。它适用于从小型脚本到大型项目的所有 Python 开发任务,尤其在 Web 开发、数据科学和机器学习领域表现出色。PyCharm 提供社区版(免费)和专业版(付费),满足不同开发者的需求,大幅提高开发效率。

2024-07-15 10:49:53 2172

原创 python requests爬取文本

☔️requests库是Python中用于发送HTTP请求的第三方库,设计简单易用,能处理复杂的HTTP操作,如GET、POST、PUT、DELETE等请求。它简化了HTTP请求的发送和响应的处理,使得与Web服务和API的交互变得非常容易。

2024-07-14 15:01:34 508

空空如也

空空如也

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

TA关注的人

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