![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
文章平均质量分 78
Vincent乐
计算机视觉、机器学习、深度学习
展开
-
C++ 实现求二叉树的深度及遍历(递归与非递归算法)
#include #include #include using namespace std;struct BSTNode{ int data; BSTNode * LChild,* RChild;};class BST{private: BSTNode *T;public: ~BST(); BSTNode * GetRoot(); void BSTCreate(转载 2013-03-29 14:48:36 · 15002 阅读 · 0 评论 -
全排列算法非递归实现和递归实现
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出原创 2013-03-06 19:26:10 · 13946 阅读 · 0 评论 -
算法艺术——网络最大流
USACO 4.2.1 Ditch 网络最大流问题算法小结通过 USACO 4.2.1 Ditch 学习一下最大流算法 。可惜它给的测试数据几乎没有任何杀伤力,后面测试时我们采用 DD_engi 写的程序生成的加强版数据。总体上来说,最大流算法分为两大类:增广路 (Augmenting Path) 和预流推进重标号 (Push Relabel) 。也有算法同时借鉴了两者的长转载 2013-04-06 14:50:05 · 2045 阅读 · 0 评论 -
二叉树的常见问题及其解决程序
二叉树的常见问题有如下几个,如果解决好了,就跟链表一样轻松:唯一不一样的是,二叉树是非线性结构。常见的问题如下:二叉树的问题1.二叉树三种周游(traversal)方式:二叉树的问题1.二叉树三种周游(traversal)方式:2.怎样从顶部开始逐层打印二叉树结点数据3.如何判断一棵二叉树是否是平衡二叉树4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复杂度转载 2013-05-03 22:29:24 · 2095 阅读 · 0 评论 -
布隆过滤器 (Bloom Filter) 详解
http://www.gzkindway.com/news/glclsb/2011-02-19/5221.html【原】布隆过滤器 (Bloom Filter) 详解 主题关键词:过滤器布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。转载 2013-03-25 20:57:33 · 13985 阅读 · 0 评论 -
KM算法详解
KM算法用来解决最大权匹配问题: 在一个二分图内,左顶点为X,右顶点为Y,现对于每组左右连接Xi,Yj有权wij,求一种匹配使得所有wij的和最大。基本原理 该算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[ i ],顶点Yj的顶标为B[ j ],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,原创 2013-04-05 23:22:49 · 10732 阅读 · 0 评论 -
二分图的最大匹配2—匈牙利算法
【基本概念】:二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。 最大匹配:给定一个二原创 2013-04-03 21:56:01 · 9074 阅读 · 0 评论 -
用匈牙利算法求二分图的最大匹配
什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。最大流算法的核心问题就是找增广原创 2013-04-03 15:46:59 · 8693 阅读 · 0 评论 -
《算法导论》算法C++实现(七)P102 桶排序
第八章 线性时间排序8.4 桶排序桶排序的思想就是把区间[0, 1)划分成n个相同大小的子区间,每一个区间称为桶(bucket)。然后,将n个输入数据分布到各个桶中去。因为输入数均匀且独立均匀分布在[0, 1)上,所以一般不会有很多数落在一个桶中的情况。为得到结果,先对各个桶中的数进行排序,然后按次序把各个桶中的元素列出来即可。在桶排序算法中,假设输入的是一个含n个元素的数组A,且每个转载 2013-03-19 23:28:31 · 2038 阅读 · 0 评论 -
杨氏矩阵搜索算法
先看一个来自算法导论习题里6-3与剑指offer的一道编程题(也被经常用作面试题,本人此前去搜狗二面时便遇到了):在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,由于原创 2013-03-07 11:11:23 · 13459 阅读 · 0 评论