![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm Learning
WA说
喜欢折腾,对微服务实践有自己深入的了解。
涉猎语言Java,Python
涉猎框架Spring Cloud/Dubbo/Spring Framework
展开
-
有向图的遍历算法
有向图基本算法 -- 遍历算法 1. 图的表示 2. 有向图的遍历算法:深度优先 3. 有向图的遍历算法:广度优先 4 代码反思 5. 下载 1. 图的表示 1.1 图的定义 图G定义为V和E的集合G={V, E},其中V表示图中的所有的顶点集合,E表示的是G中的所有的边的集合。图按照E中的元素是否有方向,分为有向图和无向图。 1.转载 2013-08-19 20:43:55 · 2747 阅读 · 0 评论 -
求两个字符串的最长公共字串(连续)
题目描述: 输入两个字符串,求其的最长的公共的字串,这与最长公共子序列不一样 输出两字符串的最长公共字串 思路一: 从字符串A开始遍历,同时遍历字符串A,找到第一个与当前字符串A相同的字符,此时记下当前的pos,并同时遍历两字符串, 直到找到两字符串不相同的字符,记下其长度,与max比较,大则则将相同的子串copy到max_str中 C++实现 #include #include原创 2013-07-27 22:34:44 · 1446 阅读 · 0 评论 -
用O(nlog(n)实现最长递增子序列问题
问题描述 输入一串数字,或数组,如-5, 1, -3, -1, -2, 1, 4, 8, 9, 7,则该数组的最长递增子序列之一(注意,最长递增子序列有时候不止一个)为-5,-3, -1, 1, 4, 8, 9 解决方案: 有两种思路:1. 用动态规划来解决(O(n^2)));2,用类似二分排序的方法来解决(O(nlog(n))) 思路一: 可以参考之前的博文最长递增子序列的求解原创 2013-08-22 16:04:08 · 1168 阅读 · 0 评论 -
二叉搜索树的详解(算法导论读书笔记)
什么是二叉搜索树? 一棵二叉树的节点x,如果y是x左子树中的一个节点,那么y.keyx.key 二叉树的数据结构 typedef int data_t; typedef struct BST { data_t data; struct BST *left; struct BST *right; struct BST *parent; }BST; 二叉搜索树的遍历 我们可以通过原创 2013-08-18 10:30:47 · 1288 阅读 · 0 评论 -
归并排序的递归实现与非递归实现
归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 算法描述 归并操作的工作原理如下: 第一步:申请空间,使其大小为两个已原创 2013-07-25 22:11:23 · 2074 阅读 · 0 评论