自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xuanyuansen的专栏

既然选择了前方,便只顾风雨程兼

  • 博客(7)
  • 收藏
  • 关注

原创 棋盘摆放皇后问题(回溯思想的经典应用)

4皇后和8皇后问题是回溯思想的经典应用之一,其核心思想仍然是解空间树的深度优先搜索。今天在盲写代码过程中居然犯了糊涂而出错,后来静心下来,仔细地回顾了算法的每一步才写出了正确的代码。我的总结是,回溯算法的精髓在于确定解空间树,建立递归的开始与结束条件,为了降低时间复杂度而剪枝,回溯要返回至问题未被修改的状态。明确了上述4个问题就可以顺利地解决问题。解空间树如下,详细代码如下,//

2012-08-16 12:27:51 1401

原创 汉诺塔问题的递归解决方法

汉诺塔问题是递归思想的经典应用之一,即有一摞金蝶在塔1上,需要借助塔3把塔1的碟子移动到塔2上,限制是小碟子始终在大碟子上面。这个问题用递归方法解决最为方便,即移动第N个碟子之前需要把塔1上的N-1个碟子移动到塔3上,再把碟子N移动到2上,再把塔3的N-1个碟子移动到塔2上。这样不断地递归就可以了。

2012-08-15 14:39:26 3378

原创 《编程之美》烙饼排序问题的简单实现

今天选择性地看了一下以前写的《编程之美》的部分程序,发现这个问题很有趣,而且使用STL中的vector(向量容器)和deque(双向队列)这两种数据结构可以很有效地解决这个问题。先看问题描述:对于大小不同的一摞饼,需要将其按照从大到小的顺序摆好,其中小的在上面。翻转的限制是每次只能抓住最上面的几块饼翻转,反复几次即可得到排好序的饼。算法:1、按照位置从底向上处理,先找到位置i开始最大的

2012-08-14 14:07:03 903

原创 最近点对问题(分治思想的经典应用)

今天开始复习典型算法,首先回顾了分治算法的应用。一个经典的问题是求二维空间中最近点对。如果硬性用循环解决这个问题的话,当点的数量较大时,循环的次数会以O(n2)增加,所以这不是较好的解决方法。对于这种问题,可以通过将原问题不断划分为更小的子问题进而加以解决。在《数据结构、算法与应用-----c++语言描述》一书中给出了这一问题完备的分治递归解决方案。 算法过程如下:1、如果点的数量n较小,则直

2012-08-14 12:38:15 2348

原创 含重复字符的字符串组合算法(深度优先搜索树递归实现)

今天研究了字符串的组合,和字符串的全排列不同的是,组合只考虑元素的个数而不考虑元素的排列顺序。对于不含重复字符的字符串全排列,笔者搜索到的最简单的算法如下所示,来源http://hi.baidu.com/%C2%AC%B1%C8%D0%A1%BE%AB%C1%E9/blog/item/21363d8912977fc09023d97d.htmlvoid substr(char *str){

2012-08-12 21:08:00 2263

原创 含重复字符的字符串全排列算法(思路+分析)

从昨天到现在一直在回顾字符串的全排列算法,之前简单地复习了不含重复字符的字符串全排列,所以这次想彻底解决该算法。关于不含重复字符的字符串全排列比较简单,直接用递归思路解决即可,简单代码如下:template void permute(T list[],int k, int m){ int i; if (k==m) { for (i=0;i<=m;i++) cout<<lis

2012-08-12 13:07:08 3758

原创 约瑟夫环问题的亲身实践(和循环链表有关)!

最近一直在复习数据结构的相关内容,首先回顾的就是链表这一非常基础和重要的数据结构,而其中的循环链表问题又非常有趣。比如约瑟夫环问题。笔者在回避参考资料的情况下自己写出了如下代码,仅供诸位参考,如果有考虑不周到的地方,欢迎各位交流指正,共同进步,谢谢!(为了突出重点,略去了其他函数,请见谅!)//首先定义了节点template class ChainNode{public: T dat

2012-08-10 20:53:08 822

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除