随笔分类 - 算法分析与设计

摘要:如何输出n个元素的全排列呢,比如abc,一个共有abc,acb,bac,bca,cab,cba等六种排列方式,一般来说,一个具有n个元素的串有n!中排列方式。我们可以把n个元素的排列的生成作为一个取舍问题,例如元素串abc,对于以a开头的排列方式,可以用一下方式进行选取,(1)选择b,构成ab,继续选择c,构成abc,新串产生结束。但是在第一步时可以不选取b,然后继续往下搜查,这时只有c,选取c,... 阅读全文

posted @ 2009-04-10 16:55 少林 阅读 (1522) | 评论 (1) 编辑 |

摘要:最近随手写了一个链表逆序的算法,全当练手好了。 代码比较简单,不做介绍了,如下: Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// linkreverse.cpp : Defines the entry point for the c... 阅读全文

posted @ 2008-11-04 15:56 少林 阅读 (475) | 评论 (0) 编辑 |

摘要:最近在北京青年报偶然看到了一个数独游戏的题,具体来说就是按规矩进行填书。自己想了想,觉得还是有点费脑子的。于是就编写了一个程序,可以搜索数独游戏的所有答案。算法很简单,就是使用了回溯+剪枝,效率可能不是很高。不过对于9*9规模不是很大的问题,也应该足够了,不知道大家有什么好的算法,千万别忘了留言告诉我啊,哈哈 数独游戏: 版权所有 数独的游戏规... 阅读全文

posted @ 2008-09-21 20:28 少林 阅读 (2959) | 评论 (6) 编辑 |

摘要:放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 int total=0; int m,n,h; void solve(int x,int k) { int i,j; if(h==0&&k=1;i--) {... 阅读全文

posted @ 2008-05-21 16:27 少林 阅读 (335) | 评论 (1) 编辑 |

摘要:算法思路: (1) 读入N进制的数,先将其转换为10进制 (2)然后再把十进制转换为M进制. (3)要用到的数据结构,栈,队列 代码如下(N,M必须小于10.) queue.h #ifndef __queue__h #define __queue__h #define MAX 100 class queue { public: queue() { head = ta... 阅读全文

posted @ 2008-05-01 21:32 少林 阅读 (655) | 评论 (1) 编辑 |

摘要:一 消息 1. WM_NCACTIVATE 当客户区将要显示激活或者非激活时,WM_NCACTIVATE消息就会发送给窗口。一个窗口通过它的WindowProc函数来获取该消息。 LRESULT CALLBACK WindowProc( HWND hwnd, // handle to window UINT uMsg, // WM_NCACTIVATE WPARA... 阅读全文

posted @ 2008-04-11 23:44 少林 阅读 (957) | 评论 (0) 编辑 |

摘要:在实际编程中,有许多定义或者问题本身就具有递归性质.所以我们顺其自然就想到用递归来解决.这样不仅代码少,而且结构清晰.但是问题是我们应该怎样设计递归呢?这确实一个问题,由于许多问题并不是很明显的表现出递归的关系,所有很大一部分需要我们进 阅读全文

posted @ 2007-05-27 16:10 少林 阅读 (3678) | 评论 (2) 编辑 |

posts - 70, comments - 306, trackbacks - 0, articles - 4

Copyright © 2019 少林
Powered by .NET Core 3.1.0 on Linux