基本上一次过,要注意边界条件的问题:如果在recursion里有两个参数int begin, end,
递归写作recursion(num, mid+1, end), 因为+号的原因,递归中是会出现begin > end
的情况的,所以考虑初始条件的时候应该要考虑充分。 1 /** 2 * Def....
分类:
其他好文 时间:
2014-05-26 12:12:49
阅读次数:
257
在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题。其实这个解决问题的思路就是算法中常用的divide
and conquer, 这篇日志通过解决矩阵的乘法,来了解另外一个基本divide and conque思想的strassen算...
分类:
其他好文 时间:
2014-05-26 11:53:42
阅读次数:
365
本章介绍弗洛伊德算法。和以往一样,本文会先对弗洛伊德算法的理论论知识进行介绍,然后给出C语言的实现。后续再分别给出C++和Java版本的实现。目录 1.
弗洛伊德算法介绍 2. 弗洛伊德算法图解 3. 弗洛伊德算法的代码说明 4. 弗洛伊德算法的源码 转载请注明出处:http://www.cnbl....
分类:
编程语言 时间:
2014-05-26 11:47:15
阅读次数:
316
1、插入排序:插入法是一种比较直观的排序方法。它首先把数组头两个元素排好序,再依次把后面的元素插入适当的位置。把数组元素插完也就完成了排序。代码如下:#includevoid
main(){int a[10];int i,j,k;printf("请输入10个数字!空格隔开\n");for(i=0;i...
分类:
编程语言 时间:
2014-05-26 11:45:36
阅读次数:
344
基础问题项目中实现了哪些模块。以及怎么实现的。有没有做数据库的优化。写过多少行代码。程序实现1.字符串中单词逆转2.7个不同数中选3个数组合。用递归实现系统架构一个系统用来更新数据库,一个系统同来缓存数据库用来快速获取数据。如何保证缓存和数据库系统的一致性。数据库很大,上亿数据思路:增量更新。方法:...
分类:
其他好文 时间:
2014-05-26 11:32:39
阅读次数:
276
CSDN链接
算法操作过程:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。....
分类:
其他好文 时间:
2014-05-26 11:26:23
阅读次数:
225
#includeusing namespace std;///算法重要,但是思想更重要 void
MemeryArray(int a[],int n,int b[],int m,int c[])///经典框架,be careful!{ int i,j,k;
i = j = k = 0; while(...
分类:
其他好文 时间:
2014-05-26 11:22:57
阅读次数:
204
CSDN链接两个自然数的积等于这两个数的最大公约数与最小公倍数的积。求最大公约数的方法:1、辗转相除法:辗转相除法又称为欧几里德算法其计算原理依赖于下面的定理:定理:gcd(a,b)
= gcd(b,a mod b) (a>b 且a mod b 不为0)当b==0时,gcd(a,b)中的a即为最大公...
分类:
其他好文 时间:
2014-05-26 11:19:49
阅读次数:
263
出题:定义一个复杂链表:在单向链表的基础上,每个节点附加一个指向链表中其他任意节点的指针sibling,实现CNode* Clone(Cnode
*head)函数复制这个复杂链表;分析:解法1:将head复制到CHead中,第一次遍历创建CHead中对应head的各个节点(next),第二次遍历创建...
分类:
其他好文 时间:
2014-05-26 10:57:19
阅读次数:
333
出题:
输入一个数字矩阵,要求从外向里顺时针打印每一个数字;分析:从外向里打印矩阵有多重方法实现,但最重要的是构建合适的状态机,这样才能控制多重不同的操作;注意有四种打印模式(左右,上下,右左,下上),所以需要一个index变量控制每次循环时执行的打印模式;注意水平打印和垂直打印分别需要两个变量控制...
分类:
其他好文 时间:
2014-05-26 10:55:14
阅读次数:
318