一》递归:直接或间接地调用自身的算法。
EG:
1》阶乘定义 n!=n(n-1)! (n>0);
pubic static int factorial(int n ){
if(n==0) return 1;
else
return n*factorial(n-1);
}
2》FiBonacci数列
public static int fibo(int...
分类:
编程语言 时间:
2016-07-12 12:19:41
阅读次数:
345
使用分治法的两路合并排序算法: 将待排序的元素序列一分为二,得到长度基本相等的两个子序列,分别排序。 如果子序列较长,还可继续细分,直到子序列的长度不超过1为止。 当分解所得的子序列已排列有序时,将两个有序子序列合并成一个有序子序列,得到原问题的解。 合并方法: 比较两序列中的最小值,输出其中较小者 ...
分类:
编程语言 时间:
2016-07-11 11:54:40
阅读次数:
207
Linux下,I/O处理的层次可分为4层: 系统调用层,应用程序使用系统调用指定读写哪个文件,文件偏移是多少 文件系统层,写文件时将用户态中的buffer拷贝到内核态下,并由cache缓存该部分数据 块层,管理块设备I/O队列,对I/O请求进行合并、排序 设备层,通过DMA与内存直接交互,将数据写到 ...
分类:
系统相关 时间:
2016-07-02 13:07:58
阅读次数:
214
快速排序是基于分治策略的。对一个子数组A[p…r]快速排序的分治过程的三个步骤为: 分解: 数组A[p…r]被划分成两个(可能空)子数组A[p…q-1]和A[q+1…r],使得A[p…q-1]中的每个元素都小于等于A[q],且小于等于A[q+1…r]中的元素。下标q也在这个划分过程中进行计算。 解决 ...
分类:
编程语言 时间:
2016-06-24 10:37:03
阅读次数:
126
题目来源:http://www.lintcode.com/zh-cn/problem/merge-sorted-array/ C++版 VS2012测试通过 Python2.7版 spider测试通过 ...
分类:
编程语言 时间:
2016-06-23 21:57:09
阅读次数:
197
1. 交换排序 (1)冒泡排序 (2)快速排序 2. 选择排序 (1)直接选择排序 (2)堆排序 3. 插入排序 (1)直接插入排序 (2)希尔排序 4. 合并排序 (1)合并排序 5. 非比较排序 (1)计数排序 (2)桶排序 (3)基数排序 ...
分类:
编程语言 时间:
2016-06-22 20:13:57
阅读次数:
207
并归排序是一种典型的递归分治策略。并归排序实际上非常简单,简直比冒泡儿还简单。 只需要简单的两部:对待排序的拆分,分完之后并归。然后这个过程逐级向下。 其实我感觉举个例子之后,整个过程都明白了,再写代码难度也不是很大 终于觉得并归是最简单的了 分的时候尽量对称分,然后在逐级合并的时候其实是有排序作用... ...
分类:
编程语言 时间:
2016-06-19 11:27:14
阅读次数:
205
一.采用分治策略:将原问题划分成n个规模较小的但结构和原问题相同的子问题,递归解决这些子问题后合并各个结果从而得到原问题的解。 二.分治策略的步骤: 分解:将原问题分解成一系列子问题 解决:子问题粒度足够小、能直接求解则直接求解,子问题不能直接求解则继续递归分解为更小的子问题 合并:将子问题的结果合 ...
分类:
编程语言 时间:
2016-06-17 23:52:39
阅读次数:
203
基本算法 贪心算法:贪心算法 作者:独酌逸醉 贪心算法:贪心算法精讲 作者:3522021224 递归和分治:递归与分治策略 作者:zhoudaxia 图论 图的遍历(DFS和BFS):图的遍历 作者:jefferent 最小生成树(Prim算法和Kruskal算法):贪心算法--最小生成树 作者: ...
分类:
其他好文 时间:
2016-06-17 23:45:31
阅读次数:
211
从股票买卖问题转换成为一个求最大子数组问题 天 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 价格 100 113 110 85 105 102 86 63 81 101 94 106 101 79 94 90 97 变化 13 -3 -25 20 -3 -16 ... ...
分类:
编程语言 时间:
2016-06-17 09:48:45
阅读次数:
341