- 博客(12)
- 收藏
- 关注
原创 深入理解计算机存储器:分类、性能指标与多级层次结构
计算机存储器的多级层次结构是计算机体系结构中巧妙的设计,它通过合理组织不同速度、容量和成本的存储器,实现了接近最快存储器的速度和接近最慢存储器的大容量与低成本。理解存储器的分类、性能指标和层次结构,对于深入学习计算机组成原理和优化程序性能都具有重要意义。随着技术的进步,存储器的形态和特性还在不断发展,但基本原理和设计思想仍将持续指导未来的存储器设计。希望这篇博客可以帮助到你。
2025-04-18 16:40:53
542
原创 外部排序:原理、算法与应用总结
外部排序是指对大规模数据进行排序的技术,这些数据太大而无法全部装入计算机的内存(RAM),必须借助外部存储器(通常是磁盘)进行排序和暂存。外部排序是大规模数据处理的核心技术之一,理解其原理和算法对于计算机专业人员至关重要。在考研408中,外部排序常与文件系统、数据库等知识点结合考查。掌握多路归并、置换选择、败者树等关键技术,并能进行性能分析和计算,是应对相关考题的关键。在实际应用中,外部排序算法的优化仍然是数据处理领域的重要研究方向。
2025-04-14 17:54:36
1658
原创 408考研必备:内部排序算法全方位对比与解析
排序算法是数据结构与算法的基础内容,也是408考研的重点考查部分。没有绝对最优的排序算法,需要根据具体场景选择快速排序在平均情况下性能最好,是通用首选归并排序稳定且时间复杂度稳定,适合外部排序堆排序空间复杂度低,适合空间受限场景插入类排序适合小规模或基本有序数据基数排序适合特定类型数据的多关键字排序希望本文的全面对比分析能够帮助考生系统掌握排序算法的核心知识点,在考研复习中做到有的放矢,取得理想成绩!
2025-04-14 09:44:48
731
原创 常见排序算法实现:归并排序、基数排序、计数排序(C/C++)
归并排序:稳定排序,适用于各种数据规模,但需要额外空间基数排序:适用于整数排序,特别是位数不多的情况计数排序:适用于整数范围不大的情况,效率非常高在实际应用中,应根据数据特点和需求选择合适的排序算法。希望本文的实现能帮助你更好地理解这些排序算法的工作原理。
2025-04-12 17:22:58
283
原创 用C语言实现堆排序及相关操作
堆排序是一种高效的排序算法,特别适合处理大规模数据。通过本文的介绍和代码实现,我们了解了堆的基本概念、堆的创建、堆排序的实现以及堆的插入和删除操作。掌握这些知识不仅可以帮助你理解堆排序算法,还能为解决优先级队列等相关问题打下基础。希望这篇博客能帮助你理解堆排序以及相关操作。如果有任何问题或建议,欢迎留言讨论!
2025-04-12 11:55:58
379
原创 基于链表的简单选择排序算法实现(C语言)
int val;} ListNode;这个C语言实现的链表选择排序展示了指针操作的技巧性。相比数组实现的选择排序,链表版本避免了大量数据移动的开销,但增加了指针操作的复杂性。选择排序虽然时间复杂度较高,但实现简单,适合用于教学和小规模数据排序。希望这篇博客能帮助你理解链表上的选择排序实现。如果有任何问题或建议,欢迎留言讨论!
2025-04-12 11:02:56
247
原创 用C++实现交换排序的两种经典算法:冒泡排序与快速排序
冒泡排序由于其简单性,常被用于教学和理解排序算法的基本原理,但在实际应用中效率较低。快速排序则是一种高效的通用排序算法,在大多数情况下表现优异,是许多编程语言标准库中排序函数的实现基础。理解这两种交换排序算法的原理和实现,不仅有助于掌握基础的算法知识,也能为学习更复杂的排序算法打下坚实的基础。在实际应用中,应根据数据特性和性能要求选择合适的排序算法。希望本文对您理解交换排序算法有所帮助!如果需要更深入的讨论或其他排序算法的实现,请随时提出。
2025-04-12 09:58:45
476
原创 插入排序的三种C++实现方法详解
插入排序虽然在大规模数据排序中效率不高,但其简单直观、空间效率高的特点使其在特定场景下仍有应用价值。直接插入排序:实现最简单,适合教学和小数据集二分插入排序:减少了比较次数,适合比较操作代价高的场景希尔排序:性能最好,是插入排序家族中最实用的变种希望这篇博客能帮助你更好地理解插入排序的三种实现方法!
2025-04-11 21:25:29
589
原创 26考研 红黑树(资料收集)
4. AVL树和红黑树(只有红黑树的插入)1. 插入和删除部分都有,比较详细。3. 红黑树的删除操作 (详细)2. 红黑树的插入(简单图解)
2025-04-11 10:21:33
214
转载 26王道数据结构-第六章思维拓展
仍然利用深搜算法,只不过在这里定义visited[v]表示为深度优先搜索遍历图时访问顶点v的次序号,定义low[v]=Min{visited[v],low[w],visited[k]},其中w是顶点v在深度优先生成树上的孩子节点;因为当w是v的孩子节点时,low[w]>=visited[v],表明w及其子孙均无指向v的祖先的回边,那么当删除顶点v后,v的孩子节点将于其他节点被分割开来,从来形成新的连通分量。求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通,描述算法。
2025-04-10 10:50:22
34
原创 C/C++ 运用 DFS 实现拓扑排序与逆拓扑排序详解
基于 DFS 的拓扑排序利用了 DFS 完成访问一个节点的时间点。在一个 DAG 中,如果有一条边 u -> v,那么 DFS 访问 v 的过程一定会在访问 u 的过程结束之前结束。如果 v 的状态是 VISITING,说明遇到了一个环(从 v 出发又回到了正在访问的 u 的祖先链上的 v),图中存在环,无法进行拓扑排序,返回错误(或抛出异常)。逆拓扑排序(Reverse Topological Sort)则是得到一个序列,其中对于每一条有向边 (u, v),节点 v 都排在节点 u 的前面。
2025-04-09 19:45:34
1854
原创 经典算法入门:深入解析“两数之和”(Two Sum)问题
大家好!今天我们来聊聊一个在编程面试和算法学习中都占据着重要地位的经典问题——“两数之和”(Two Sum)。这通常是 LeetCode 上的第一道题目,也是许多初学者接触算法的起点。别看它简单,里面却蕴含着重要的算法思想和优化技巧。
2025-04-09 16:12:02
1552
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人