- 博客(13)
- 收藏
- 关注
原创 Git基础及常用命令
Git基础操作指南摘要 本文介绍了Git版本控制系统的基础操作,包括: 仓库初始化与克隆 文件状态跟踪与管理(add/commit/rm/mv) 查看提交历史与差异(log/diff) 撤销修改与版本回退 远程仓库操作(fetch/push/pull) 标签管理(创建/共享/检出) Git命令别名设置 重点命令包括git init/clone、git add/commit、git status/log、git remote等。文章详细说明了文件状态跟踪、提交更新、版本比较等核心概念,并提供了实用的操作示例和
2025-12-23 13:45:00
862
原创 堆排序--自学笔记
堆排序是一种基于完全二叉树结构的排序算法,通过构建大顶堆或小顶堆实现排序。其核心思想是:1)将数组视为完全二叉树并构建大顶堆;2)取出堆顶元素后调整剩余元素重建堆;3)循环执行直到完成排序。算法实现包括初始化堆、堆化处理和交换元素等步骤。堆排序的时间复杂度为O(nlogn),其中建堆O(n),重建堆O(nlogn),空间复杂度O(1)。该算法适用于处理大规模数据,也可用于解决"数组中第K大元素"等问题。
2025-12-22 15:24:05
215
原创 希尔排序--自学笔记
希尔排序是一种改进的插入排序算法,通过分组插入排序和逐步缩小间隔来提高效率。其核心思想是将数组按增量序列分组进行插入排序,最终实现整体有序。增量序列的选择直接影响排序效率,常见的有Hibbard、Knuth和Sedgewick序列。希尔排序的时间复杂度介于O(n)到O(n²)之间,最优可达O(n^1.3),空间复杂度为O(1)。其高效性在于能通过远距离交换消除多个逆序对。
2025-12-21 14:32:24
833
原创 插入排序--自学笔记
本文介绍了插入排序算法及其实现方法。插入排序的思想类似于整理扑克牌,通过将未排序元素逐个插入到已排序序列的正确位置来完成排序。文章展示了两种实现方式:移动法(保存当前值后移动元素)和交换法(通过交换相邻元素实现)。两种方法的时间复杂度均为O(n²),空间复杂度为O(1)。最后提供了力扣上链表插入排序的练习题链接。该算法适合小规模数据排序,实现简单但效率较低。
2025-12-18 13:45:49
201
原创 选择排序--自学笔记
本文介绍了选择排序算法及其优化版本二元选择排序。选择排序通过双重循环遍历数组,每轮找到最小/最大值进行交换。二元选择排序同时寻找最小和最大值,减少比较次数。文章对比了冒泡排序和选择排序的异同,分析了两者的时间/空间复杂度均为O(n²)和O(1),并指出选择排序减少了交换次数但不稳定。最后讨论了排序算法稳定性的应用场景,即需要保持相同元素原始顺序的情况。
2025-12-17 14:44:46
346
原创 冒泡排序--自学笔记
本文介绍了冒泡排序算法的基本思想和三种实现方法。冒泡排序通过比较相邻元素并交换,使最大值/最小值冒泡到数组末尾。文章详细讲解了三种写法:基础版本、优化版本(提前终止)和进一步优化版本(记录最后交换位置)。分析指出冒泡排序的时间复杂度为O(n²),空间复杂度为O(1),优化虽能提升性能但无法改变其复杂度等级。
2025-12-10 17:07:51
242
原创 C语言 PTA 凯撒密码
可能最后会漏掉一个“全部是字母”的测试点,是因为向右偏移可能会导致ASC码值溢出,就是比如z是122,而最高是127,只要向后加6就溢出的,我的解决办法是统一左移,详情请看代码注释。
2023-11-10 18:23:48
1872
2
原创 PTA C语言 整除光棍
以竖式计算除法的角度来看,会超时是因为进行了大量重复的运算,而本题就可模拟竖式计算来实现较大数字的计算,同时在s很大时超出整型的空间时,就可选择一个数字一个数字地输出。
2023-10-28 12:44:48
180
原创 C语言 PTA 使用函数求余弦函数的近似值
因单独计算x乘方以及分母的阶乘导致超时,而仔细观察公式,每次都是在上一次的基础上。*(-1)*x平方/i*(i-1),每次只需要让i+=2。可能会存在的运行超时问题,下面是我的1.0版本。
2023-10-26 18:38:20
516
1
原创 PTA C语言 天使赛的善良
对初学者来说一次性较难拿满分,注意各分支的考虑。输入的数字可能全相同,也可能前部分全相同,需考虑n(新输入的)与最大值或最小值是否相等,还是同时相等,以此来计数。
2023-10-19 16:36:23
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅