
算法和数据结构
爱作的小兔子
成长学习中的萌物~
展开
-
从排列到组合——深度优先搜索
这个核心代码不超过20行的例子,饱含深度优先搜索(Depth First Search,DFS)的基本模型。理解深度优先搜索的关键在于解决“当下该如何做”。至于“下一步如何做”则与“当下该如何做”是一样的。比如我们这里写的dfs(step)函数的主要功能就是解决当你在用step个盒子的时候你该怎么办。通常的方法就是把每一种可能都去尝试一遍(一般用for循环遍历)。当前这一步解决后便进入下一步dfs(step+1)。下一步的解决方法和当前这一步的解决方法是完全一样的。下面的代码就是深度优先搜索的基本模型。--原创 2016-06-19 15:45:00 · 3553 阅读 · 4 评论 -
Hanoi Tower 汉诺塔的简单分析/C
当然、这是一个经典的递归问题~ 想必来看这篇博文的同学对汉诺塔应该不会陌生了吧, 写这篇博还是有初衷的: 之前学数据结构的时候自己看书、也上网上查了很多资料,资料都比较散、而且描述的不是很清楚,对于当时刚刚 接触算法的我,要完全理解还是有一定难度。今天刚好有时间就整理了下思路、重写分析了一下之前的疑惑的地方、 没有透彻的地方便都豁然开朗了。所以迫不及待把我转载 2016-06-21 20:20:50 · 641 阅读 · 1 评论 -
几种素数判定方法
(1)最基本素数判定方法大家熟悉,只用看看2到n(或n的平方根)之间有没有n的约数: #include void main() { int i,n; scanf("%d",&n); for(i=2;i<n;i++) if(n%i==0)break; if(i<n||n==1)puts("No"); else puts("Yes"); }转载 2016-06-21 20:08:48 · 4498 阅读 · 0 评论 -
《啊哈!算法》1.3快速排序i和j谁先动的问题
http://blog.youkuaiyun.com/ahalei/article/details/19825419这里是算法原文,首先感谢原作者! while(a[j] >= temp && i < j) j--; while(a[i] <= temp && i < j) i++;i j 6 1 2 7 9 这段代码原作者注道:“顺序很重要,要先从右往左找”,这句话让我纠结了许久。由于原创 2016-08-01 15:50:08 · 2917 阅读 · 0 评论