
算法&数据结构
文章平均质量分 77
cradmin
这个作者很懒,什么都没留下…
展开
-
回溯法
一、回溯法:回溯法是一个既带有系统性又带有跳跃性的的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所转载 2008-10-06 21:14:00 · 1131 阅读 · 0 评论 -
逆波兰表达式
逆波兰表达式是一种十分有用的表达式,它将复杂表达式转换为可以依靠简单的操作得到计算结果的表达式。例如(a+b)*(c+d)转换为ab+cd+*d+。它的优势在于只用两种简单操作,入栈和出栈就可以搞定任何普通表达式的运算。其运算方式如下: 如果当前字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表达式扫描完后,栈里的就是结果。将一个普通的中序转载 2008-10-04 16:01:00 · 4162 阅读 · 3 评论 -
整数中的重要概念
* 质数和合数:prime numbers and composite numbers A prime number is a positive integer that has exactly two different positive divisors,1 and itself. For example, 2,3,5,7,11, and 13 are prime转载 2008-10-12 12:56:00 · 1311 阅读 · 0 评论 -
怎样计算任一天是星期几
最常见的公式: W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。 最好用的是蔡勒公式: W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1 C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上转载 2008-10-30 22:38:00 · 908 阅读 · 0 评论 -
两个有意思的递归小程序
最近听到的两道面试、笔试题,感觉挺有意思的:1。实现库函数strlen,不能使用任何库函数,不能定义任何变量。2。实现函数strrev,该函数有两个参数,将其中一个字符串逆序放到另一个字符串指针中,同样要求不能使用任何库函数,不能定义任何变量。采用递归实现,刚好可以满足这两道题的要求:void strrev(char **dest, const char *src){ if(*src ==原创 2008-11-07 13:08:00 · 1135 阅读 · 0 评论 -
动态规划
维基百科上一篇介绍动态规划的很不错的文章,原文链接:http://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算转载 2008-11-07 13:39:00 · 3274 阅读 · 2 评论