动态规划师通过组合子问题的解而解决整个问题,将问题划分成子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。和分治算法思想一致,不同的是分治算法适合独立的子问题,而对于非独立的子问题,即各子问题中包含公共的子子问题,若采用分治法会重复求解,动态规划将子问题结果保存在一张表中,避免重复子问题重复求解。
动态规划在多值中选择一个最优解,其算法设计一般分为4个步骤:描述最优解的结构;递归定...
分类:
编程语言 时间:
2016-07-06 15:04:10
阅读次数:
297
原文出处: Lucida (@peng_gong) 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。 这篇文章讲了什么? 我这些年学习数据结构和算法的总 ...
分类:
编程语言 时间:
2016-07-05 17:07:32
阅读次数:
245
不定期更新技术类C++C++ PrimerEffective C++More Effective C++深入探索C++对象模型Effective STL深入理解C++11C++语音的设计与演化Exceptional C++ style操作系统数据结构算法算法导论Introduction to the... ...
分类:
其他好文 时间:
2016-07-01 01:08:51
阅读次数:
115
Ch2算法基础 2.1 插入排序 输入:n个数的一个序列〈a1,a2,…,an〉。 输出:输入序列的一个排列〈a′1,a′2,…,a′n〉,满足a′1≤a′2≤…≤a′n。 我们希望排序的数也称为关键词。插入排序,插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。 ...
分类:
编程语言 时间:
2016-06-28 18:35:58
阅读次数:
174
红黑树 时间限制:3000 ms | 内存限制:65535 KB 难度:3 什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树。。。 当然,这个是我说的。。。 《算法导论》上可不是这么说的: 如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。 1)每个节点或是红的,或 ...
分类:
其他好文 时间:
2016-06-28 09:28:09
阅读次数:
155
二叉查找树(binary search tree,又叫二叉搜索树或者二叉排序树)是一种非常重要的数据结构,许多高级树结构都是二叉查找树的变种,例如AVL树、红黑树等,理解二叉查找树对于后续树结构的学习有很好的作用。同时利用二叉查找树可以进行排序,称为二叉排序,也是很重要的一种思想。本文主要参考算法导论,详细介绍二叉查找树的原理及具体的python和java代码实现。1.定义查找树是一种数据结构,它支...
分类:
其他好文 时间:
2016-06-24 15:28:13
阅读次数:
130
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 归并操作(merge),指的是将两个已经排序的序列合并成一个序列的操作。 对两个排序数组合并成一个有序数组,这个很简单 这个时间复杂度O(N+M) 对于一个数组的时候,l ...
分类:
编程语言 时间:
2016-06-24 12:29:12
阅读次数:
133
快速排序是基于分治策略的。对一个子数组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
本章介绍了散列表(hash table)的概念、散列函数的设计及散列冲突的处理。散列表类似与字典的目录,查找的元素都有一个key与之对应,在实践当中,散列技术的效率是很高的,合理的设计散函数和冲突处理方法,可以使得在散列表中查找一个元素的期望时间为O(1)。散列表是普通数组概念的推广,在散列表中,不 ...
分类:
编程语言 时间:
2016-06-24 08:07:13
阅读次数:
383
图的表示方法主要有邻接矩阵和邻接表。其中邻接表最为常用,因此这里便以邻接表为例介绍一下图的创建及遍历方法。 创建图用到的结构有两种:顶点及弧 其中ColorType是一个枚举,遍历的时候才会用到以后再说明。图的创建比较简单,直接看代码很容易理解,这里不再详细说了。 图的深度和广度遍历直接看算法导论中 ...
分类:
其他好文 时间:
2016-06-23 23:54:48
阅读次数:
201