【快速排序】: 利用递归算法, 首先选择一个基准值(pivot value),这里我们选列表的第一个值作为例。这个基准值的作用是协助列表的分割。 这个基准值在正序列表中的正确位置,我们称之为分割点(split point)。这个点用于将列表分成两个部分,然后再对每个部分做快速排序。 分割过程如下: ...
分类:
编程语言 时间:
2018-01-21 14:47:24
阅读次数:
176
非递归算法: 根据圆盘的数量确定柱子的排放顺序: 若n为偶数,按顺时针方向依次摆放 A B C; 若n为奇数,按顺时针方向依次摆放 A C B。 然后进行如下操作: (1)按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动 ...
分类:
编程语言 时间:
2018-01-21 13:52:41
阅读次数:
180
【归并排序】这里我们利用递归算法不断地将列表一分为二,base case就是列表中没有元素或者只剩一个元素,因为此时这个子列表必然是正序的;然后再逐步把两个排序完成的子列表合并成一个新的正序列表,直到所有元素排序完毕。 【示意图】这是一个从下至上的过程(Bottom-Up) 将列表不断从中间分成两个 ...
分类:
编程语言 时间:
2018-01-21 13:50:01
阅读次数:
277
栈的应用及构造 栈的简介 栈是一种只能从一端进行删除和插入的线性结构。因此栈具有后进先出的特点。例如进栈顺序是12345,如果5是第一个出栈的数字,则接下来出栈的一定是4,3,2,1。由于栈后进先出的特点,所以栈经常被递归算法调用,此时栈被称为递归工作栈。从栈的容量来看,栈可被分为动态栈可静态栈。动 ...
分类:
其他好文 时间:
2018-01-16 00:53:52
阅读次数:
180
本人的第一篇博客,纯原创,部分内容参考下面两位博主的文章,鸣谢! https://www.cnblogs.com/GODYCA/archive/2013/01/15/2861545.html https://www.cnblogs.com/LiCheng-/p/8206444.html (这篇文章写 ...
分类:
编程语言 时间:
2018-01-06 21:01:34
阅读次数:
161
1.什么是递归? 方法自己调用自己。两个条件:递推方法;递归的终止条件:什么情况下不再递归。 2.案例1:阶乘 3.案例2:利用递归实现斐波那契数列 4.案例的非递归算法 ...
分类:
Web程序 时间:
2017-12-24 00:05:13
阅读次数:
301
1.简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 3.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答: pu ...
分类:
Web程序 时间:
2017-12-22 14:55:53
阅读次数:
152
递归算法:求解1!+2!+3!+...+n!。 另外,还有一般的方法进行计算1!+2!+3!+...+n!。 代码如下: ...
分类:
编程语言 时间:
2017-12-21 20:48:45
阅读次数:
188
1. .NET和C#有什么区别 答:.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。 C#是一种编程语言,可以基于.NET平台的应用。 2.一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。 答:public cl ...
分类:
Web程序 时间:
2017-12-15 00:51:40
阅读次数:
281
//先序遍历递归 int PreOrderTraverse(BiTree T,int (* Visit)(char e)){ if(T){ if(Visit(T->data)){ if(PreOrderTraverse(T->lchild,Visit)) if(PreOrderTraverse(T-... ...
分类:
编程语言 时间:
2017-12-10 23:08:43
阅读次数:
389