- 博客(6)
- 收藏
- 关注
原创 c++:什么是DFS
深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!这个算法用一句谚语就是“不撞南墙不回头”,这条路我一直走到黑,没路了再原路返回,往其他方向走,多用于填数,走迷宫等。接下来,我来简单介绍一下DFS。
2023-11-17 20:14:21
218
1
原创 c++:无限递归
从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么故事呢?从前有个山,山里有个庙,庙里有个老和尚给小和尚讲故事……递归相信学C++的朋友们都学过,但是朋友们有没有想过这样一个问题:递归一般要求,要有终止条件,那如果没有终止条件,会怎么样。我们知道,递归会占用很多栈内存,特别是复杂的递归程序!这样一来,这程序不爆栈才怪。还会超时,永远返回不了。我举个例子给大家说明什么是无限递归:。实际上,这个的本质就是无限递归。如果真这么写,那可错误大了。那无限递归又会发生什么呢。
2023-11-11 16:57:02
404
1
原创 c++求最大公因数
时间复杂度约为O(2*sqrt(n))~O(3*sqrt(n))f[i], 就是那个1,1,2,3,5,8…最大公因数问题相信大家都遇到过,今天我来总结一下。x是满足以下不等式的最小整数解。时间复杂度约为O(n);时间复杂度约为O (x)
2023-10-18 21:19:22
1019
1
原创 c++排序算法总结
对于绝大多数排序在数据达到顺序的情况下并没有办法直接结束,在前置处理数据不是很大的情况下,可以设置一个flag标记,当数据完全处于顺序的情况下直接强制退出排序,以达到减少运行时间的效果,当然前置处理数据在总执行步骤中占比不易过大,如总执行100次,在执行95次的时候已经达到顺序,有5次循环浪费,这样的情况浪费时间不如你而外增添的标记判断时间,就不需要这个flag标记。直接插入排序有着稳定和速度快的优点,缺点是比较次数越少,插入点后的数据移动就越多,特别是数据庞大的时候就需要大量的移动数据。
2023-10-17 22:27:06
90
原创 c++优化输入输出
遇到大数据时,往往读写文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,有很多案例中提供几个数据,却在后台测评却提供了近千,近万的数据量是常事,而很多人会发现,明明算法正确的问题,却总是在超时,但把自己的输入换成scanf,输出换成printf之后莫名其妙又可以通过了,于是便冷眼相对C++的cin与cout。
2023-10-14 15:37:31
651
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人