码迷,mamicode.com
首页 >  
搜索关键字:算法导论    ( 1209个结果
模糊排序 算法导论7.6 c++实现代码
题目读起来有点晦涩,理解之后思路比较容易想到。其实就是排序的元素换成了闭区间,而闭区间‘相等’就是这些区间有公共的区域(等价类),这样就类似于习题7.2了,返回两个下标,它们之间是相等的元素,前面是‘较小’的区间,后面是‘较大’的区间。那么如何求公共子区间呢,我这里是从前往后遍历数组,如果有交叠,....
分类:编程语言   时间:2015-04-08 14:44:08    阅读次数:155
算法导论--第六章、堆排序
1. 堆的概念堆的数据结构是一种数组对象;堆可以视作为一颗完全二叉树(其中,树的每一层都填满,最后一层可能除外);树中每个节点与数组中存放该节点值的元素对应;堆可以划分为两类:a) 最大堆:除了根节点,有A[parent(i)] >= A[i],最大元素即根节点;b) 最小堆:除了根节点,有A[pa...
分类:编程语言   时间:2015-04-08 12:22:57    阅读次数:120
算法导论笔记(5)二叉搜索树
二叉查找树简介 集合操作 search搜索 mininum寻找子树的最小key节点 maxnum子树最大key节点 predecessor前序寻找比此节点小的最大节点 succesor后序 insert插入 delete删除 c实现二叉查找树简介二叉查找树(Binary Search Tree),又被称为二叉搜索树。 它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字k...
分类:编程语言   时间:2015-04-08 11:01:45    阅读次数:231
双调欧几里得旅行商问题
欧几里得旅行商问题是一个NP问题,问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。所以通常会简化为双调欧几里得问题来求一个近似解,借用下算法导论的图,如下所示a)是一个最优欧几里得b)为双调路线,从最左点开始严格向右至最右点通过动态规划求解,首先需要分析子问题:双调路径为 i -> 0,0 ...
分类:其他好文   时间:2015-04-08 10:48:41    阅读次数:316
Young氏矩阵类C++实现代码 算法导论6.3
个人总结:1.int **p和 int a[M][N]之间的区别: 1) int **指向指针的指针;而后者的类型是数组名,类型为 int (*)[N],即指向的是整个一行。 2) (a+1) 地址增加M*sizeof(int),需要注意的一点是a[i]是第i行开头的地址,&a和a的值是一样的。数组...
分类:编程语言   时间:2015-04-07 21:35:37    阅读次数:218
Leetcode---Clone Graph
这道题可以用DFS和BFS分别完成。 要说DFS和BFS讲的透彻的,还是算法导论,下面给出算法导论上的伪代码,注意,其中任何一行code都是非常值得玩味的: BFS伪代码 BFS(G, s)  1  for each vertex u ∈ V [G] - {s}  2       do color[u] ← WHITE  3          d[u] ← ∞  4         ...
分类:其他好文   时间:2015-04-07 10:07:35    阅读次数:129
算法导论——最大堆,以及堆排序算法
本段代码实现了建堆,维护最大堆的性质,堆排序函数,优先队列的相关函数(插入,找最大值,提取出最大值,增加关键值,增加元素),以及相关的测试 1 #include 2 #include 3 #include 4 #define LEFT(i) (2 * i) 5 #define RIG...
分类:编程语言   时间:2015-04-06 23:02:56    阅读次数:193
Young氏矩阵实现代码(C++) 算法导论 6.3
个人总结:1.int **p和 int a[M][N]之间的区别:1) int **指向指针的指针;而后者的类型是数组名,类型为 int (*)[N],这两者类型不同;2)(a+1) 地址增加M*sizeof(int),需要注意的一点是a[i]是第i行开头的地址,&a和a的值是一样的。数组是有大小的...
分类:编程语言   时间:2015-04-06 14:13:14    阅读次数:179
1209条   上一页 1 ... 71 72 73 74 75 ... 121 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!