- 博客(9)
- 收藏
- 关注
原创 C++算法——质数筛法
本文介绍了三种常见的质数筛法:逐个判断法、埃氏筛法和欧拉筛法。逐个判断法简单直接但效率较低;埃氏筛法通过标记倍数来筛选质数,时间复杂度为O(n log log n);欧拉筛法则进一步优化,确保每个合数只被最小质因子标记一次,实现线性时间复杂度O(n)。文中提供了每种方法的代码实现,并指出欧拉筛法在效率上的优势。掌握这些筛法对编程中的质数处理很有帮助。
2025-07-19 14:58:09
940
原创 Ubuntu25.04实体机安装
摘要:文章分享了Ubuntu 25.04系统的安装过程。首先需要准备U盘并备份数据,使用Rufus工具制作启动盘(需下载ISO镜像),选择MBR分区和Bios/UEFI系统类型。通过Windows设置进入恢复选项,选择启动盘启动后安装系统,建议勾选应用扩展、驱动和解码器。安装完成后重启即可使用Ubuntu系统,整个过程简单易操作。
2025-07-03 14:01:56
356
原创 C++算法——排序算法梳理
本文介绍了六种基础排序算法:1)冒泡排序通过相邻元素比较交换实现排序,时间复杂度O(n²);2)选择排序每次选择剩余元素最小值交换,时间复杂度O(n²);3)插入排序将元素插入已排序部分的正确位置,时间复杂度O(n²);4)桶排序利用计数实现线性时间复杂度O(n),但空间开销大;5)快速排序采用分治思想,平均时间复杂度O(nlogn);6)归并排序稳定保持O(nlogn)时间复杂度。每种算法均附有原理说明和C++实现代码,建议结合可视化网站理解排序过程。
2025-07-03 09:51:42
950
原创 C++算法——二分查找
是为在数组中快速查找的算法。其最差情况的时间复杂度为Olog2n。而线性查找的时间复杂度为On。我们可以看到二分查找比线性查找快很多。
2025-06-07 13:27:39
369
原创 C++数据结构——结构体与联合体
使用结构体时,用户可以自定义数据类型,在一个结构体的定义中,可以在自定义数据类型中定义一个或多个已定义的数据类型。例如int、long long、double、或其他自定义的数据类型等等。char ch;double f;// 包含的变量// 也可以在结构体中包含函数// 注意不要忘记了这里的分号S s[100];// 定义S类型数组__ 结构体的核心特性: __数据聚合:将逻辑相关的多个数据项组合在一起。
2025-05-02 11:18:01
1781
原创 C++数据结构——Map
map// 自定义键比较函数});// 使用函数指针// 错误的比较函数:不满足严格弱序// 错误!应该使用 <// 使用这种比较函数会导致未定义行为选择正确的容器需要有序遍历 →map只需快速查找 →允许重复键 →multimap安全访问优先使用find+ 检查end()慎用operator[](可能意外插入)使用at()进行带边界检查的访问性能考虑批量插入时使用C++17+ 使用节点操作避免拷贝自定义比较函数要满足严格弱序现代C++特性使用避免不必要的临时对象。
2025-04-30 13:05:28
1208
原创 C++数据结构——链表
链表是一种动态数据结构,它通过指针将一组零散的内存块串联起来使用。它作为基础数据结构,其实现质量直接影响程序性能和稳定性。
2025-04-04 19:20:06
2664
原创 C++算法——贪心算法
贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优(即最有利)的选择,从而希望导致结果是全局最优的算法策略。
2025-03-29 16:10:30
2548
原创 C++数据结构——Vector
Vector 是 C++ 中非常实用的容器,它提供了动态数组的功能,并支持各种操作。掌握 vector 的用法对于编写高效、易维护的 C++ 代码至关重要。
2025-03-21 21:51:52
963
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人