![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
文章平均质量分 81
LJDaisy
这个作者很懒,什么都没留下…
展开
-
算法导论 红黑树的C++代码实现
红黑树为满足下列五个条件的特殊二叉树每个结点要么是红的要么是黑的。 根结点是黑的。 每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的。 如果一个结点是红的,那么它的两个儿子都是黑的。 对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点。本文代码根据算法导论上的伪代码编写,按照先序、中序、后序输出。可直接运行,如有错误,欢迎大家指正~~~原创 2014-12-16 11:53:59 · 625 阅读 · 0 评论 -
算法导论--广度优先搜索(无向图)
本文列出邻接矩阵以及邻接链表表示的无向图的广度优先搜索C++源代码。代码依据下面无向图执行:邻接矩阵表示的无向图的广度优先搜索:head.h#include #include #include using namespace std;#define N 6#define INFINITE 0x7ffffffenum Color{WHITE,GARY,BLACK};原创 2015-02-03 21:50:03 · 909 阅读 · 0 评论 -
算法导论--公共子序列
作用: 最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法。概念 举个例子,给定两个序列X和Y,如果Z即是X的子序列也是Y的子序列,我们称它为X和Y的公共子序列(common subsequence)。例如,X=,Y=,那么序列就是X和Y 的公共子序列,但它不是X和Y的最长公共子序列(LCS)。在你找出的公共子序列中,你能找出最长的公共子序列原创 2015-01-19 13:40:59 · 891 阅读 · 0 评论 -
动态规划--01背包问题
01背包问题具体例子:假设现有容量10kg的背包,另外有3个物品,分别为a1,a2,a3。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6。将哪些物品放入背包可使得背包中的总价值最大? 这个问题有两种解法,动态规划和贪婪算法。本文仅涉及动态规划。 先不套用动态规划的具体定义,试着想,碰见这种题目,怎么解决? 首先想到的,一般是穷举法,原创 2015-01-20 17:25:09 · 584 阅读 · 0 评论 -
动态规划--最优二叉树问题
1、问题描速: 设 S={x1, x2, ···, xn} 是一个有序集合,且x1, x2, ···, xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x 大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi, xi+1) 的开区间。在表示S的二叉搜索树中搜索一个元素x,原创 2015-01-19 20:38:34 · 12230 阅读 · 1 评论 -
贪心算法--活动选择问题
本文分析并实现算法导论贪心算法活动选择问题,并且分析不同的贪心选择所得的结果。原创 2015-01-20 10:37:43 · 1072 阅读 · 0 评论 -
字符串匹配——朴素算法、KMP算法
字符串匹配(string match)是在实际工程中经常会碰到的问题,通常其输入是原字符串(String)和子串(又称模式,Pattern)组成,输出为子串在原字符串中的首次出现的位置。通常精确的字符串搜索算法包括朴素搜索算法,KMP, BM(Boyer Moore), sunday, robin-karp 以及 bitap。下面分析朴素搜索算法和KMP这两种方法并给出其实现。假设原字符T串长度N原创 2015-04-18 15:24:30 · 8506 阅读 · 0 评论 -
斐波那契数列实例讲解以及C++实现
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。原创 2015-04-19 21:25:34 · 7391 阅读 · 0 评论 -
排序算法总结
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 一、分类比较排序算法:插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序;非比较排序算法:基数排序、计数排序、桶排序;当n较大,则应采用时间复杂度为O(nlog2n)的排序方法原创 2015-03-18 10:00:11 · 730 阅读 · 0 评论