1 #include 2 /* 分治法计算最大值和最小值的算法程序,递归实现 */ 3 void maxmin2(int d[], int left, int right, int *max, int *min) //数组,头,尾,最大值,最小值 4 { 5 int max1, min1; 6 ..... ...
分类:
其他好文 时间:
2018-03-09 12:15:15
阅读次数:
180
https://www.jianshu.com/p/7d037c332a9d?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends 八大排序,三大查找是《数据结构》当中非常基础的知识点 ...
分类:
编程语言 时间:
2018-03-08 17:23:30
阅读次数:
206
#include <iostream>#include <cstdio>#include <cstring>using namespace std;//问题描述:给定 n 种物品和一个容量为 c 的背包,物品 i 的重量是 wi,其价值为 vi.//问:应该如何选择装入背包的物品,使得装入背包中的物 ...
分类:
其他好文 时间:
2018-03-06 13:46:29
阅读次数:
159
分治算法 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并 ...
分类:
编程语言 时间:
2018-03-04 18:09:11
阅读次数:
186
常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解。拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划。本质是:对于一个问题,通过划分阶段,定义状态与状态间的关系,来 分解问题 。利用单阶段问题之间的联系, ...
分类:
编程语言 时间:
2018-03-02 01:20:59
阅读次数:
162
分治法:1.将一个问题分成许多小问题,求解小问题。2.将小问题重新组合成一个问题。 例子: 排队购票 问题描述:一场球赛开始前,售票工作正在紧张进行中。每张球票为50元,有m+n个人排队等待购票,其中有m 个人手持50元的钞票,另外n个人手持100元的钞票。求出这m+n个人排队购票,使售票处不至出现 ...
分类:
编程语言 时间:
2018-02-26 23:24:12
阅读次数:
183
问题描述参见:https://www.cnblogs.com/zyxStar/p/4591897.html 代码参考:http://blog.csdn.net/qq_28666193/article/details/53351482(原代码中有几处错误,我作了修改) 头文件部分: (1)数据结构部分 ...
分类:
其他好文 时间:
2018-02-25 13:16:09
阅读次数:
194
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide and ConquerMethod)。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边 ...
分类:
编程语言 时间:
2018-02-24 15:36:58
阅读次数:
183