![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithem
文章平均质量分 66
zyr1984
这个作者很懒,什么都没留下…
展开
-
二路归并
合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法。它的基本思想就是假设数组A有N个元素,那么可以看成数组A是又N个有序的子序列组成,每个子序列的长度为1,然后再两两合并,得到了一个 N/2 个长度为2或1的有序子序列,再两两合并,如此重复,值得得到一个长度为N的有序数据序列为止,这种排序方法称为2—路合并排序。 例如数组A有7个数据,分别是: 49 38 65 97 76 13 27,那么采用归并排序算法的原创 2010-07-23 10:56:00 · 713 阅读 · 0 评论 -
最大公约数 最小公倍数
1 借助最大公约数求最小公倍数 步骤: 一、利用辗除法或其它方法求得最大公约数; 二、 最小公倍数等于两数之积除以最大公约数。 举例:12和8的最大公约数为4 12×8/4=24 两数的最小公倍数是24 注:公约数又称公因数。 2 最大公约数 例如:求4453和5767的最大公约数时,可作如下除法. 5767÷4453=1余1314 4453÷1314=3余511 1314÷511=2余292 511÷292=1余219 292÷219=1余73 219÷转载 2010-06-24 10:24:00 · 824 阅读 · 0 评论 -
Maxflow-Mincut
/********************** 最大流算法 ***********************/ #include #include #define abs(i) ((i) #define N 100 long limits[N][N],last[N],flow[N][N],n,m; //limits数组记录容量, flow记录流量 // last记录某一点在增广路上的前趋:设为 i, 则正向弧标为 i, 反向弧标为-i int Init();原创 2010-06-23 10:55:00 · 2218 阅读 · 0 评论 -
非递归遍历二叉树
// 中序递归遍历void InOrderTrvDiGui(NODE* pNode){ if(pNode) { InOrderTrvDiGui(pNode->leftNode); cout info; // visit node InOrderTrvDiGui(pNode->rightNode); }}然而,当树的深度很大(比如16)时(假设为满二叉树),树的节点数为 2^0 + 2^1 + 2^2 + ... + 2^15 = 2^16 = 65536,遍历整个二叉原创 2010-06-23 10:50:00 · 604 阅读 · 0 评论 -
mapreduce
<br />MapReduce:超大机群上的简单数据处理<br /> <br /> 摘要<br />MapReduce是一个编程模型,和处理,产生大数据集的相关实现.用户指定一个map函数处理一个key/value对,从而产生中间的key/value对集.然后再指定一个reduce函数合并所有的具有相同中间key的中间value.下面将列举许多可以用这个模型来表示的现实世界的工作.<br />以这种方式写的程序能自动的在大规模转载 2010-08-11 17:23:00 · 374 阅读 · 0 评论 -
Google File System
<br />Google文件系统 <br />GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。 <br />1、设计概览 <br />(1)设计想定 <br />GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想。这就需要对传统的选择进行重新检验并进行完全不同的设计观点的探索。 <br转载 2010-08-11 17:21:00 · 237 阅读 · 0 评论 -
Google's BigTable 原理
<br /><br /> 题记:google 的成功除了一个个出色的创意外,还因为有 Jeff Dean 这样的软件架构天才。<br /> ------ 编者 <br />官方的 Google Reader blog 中有对BigTable 的解释。这是Google 内部开发的一个用来处理大数据量的系统。这种系统适合处理半结构化的数据比如 RSS 数据源。 以下发言 是 Andrew Hitchcock转载 2010-08-11 17:19:00 · 269 阅读 · 0 评论 -
已知中序与后序,或者中序与先序,构造二叉树
/* <br />给出一棵二叉树的中序与后序排列。求出它的先序排列。<br />给出一棵二叉树的中序与先序排列。求出它的后序排列。<br />*/<br /><br />#include<iostream><br />#include<string><br /><br />using namespace std;<br /><br />typedef struct BTNode{<br /> char data;<br /> struct BTNode *lc, *rc;//左,右孩原创 2010-08-09 22:35:00 · 567 阅读 · 0 评论 -
中文金额数字转int
<br />用栈实现转化:<br />如果新读入的汉字(假设它代表的数字为N)比栈顶数字还要大<br />{<br /> 弹出栈中所有比N小的元素,并将这些元素累加,假设结果为S;<br /> 将S*N入栈;<br />}<br />否则<br />{<br /> 将N直接入栈;<br />}<br />最后将栈中所有数字相加。<br /> <br />Exp:一亿一千二百五十八万三千二百四十(112,583,240)<br />第1步==>处理“一”,N=1<br />直接入栈,<br />此时栈中原创 2010-08-11 13:05:00 · 654 阅读 · 0 评论 -
和最大连续子串的问题
<br />贪心.<br />从第一个正数开始一路往后加, 被减没了就丢掉, 记录过程中最大的和原创 2010-08-06 11:11:00 · 398 阅读 · 0 评论 -
扔蛋的最少次数
某人有M个相同的蛋,有一天,它想试验一下蛋的硬度。他是通过不断从一座N层楼高的楼上往下扔蛋来确定蛋的硬度X。给定M和N,求出最坏情况下,要保证试验成功,需要扔蛋的最少次数。f(i,j)表示i个蛋在j层楼上最坏情况下确定x需要的最少次数,f(i,j) = min {max{f(i-1,w-1),f(i,j-w)}+1} w是层数 w=1..j -----+---- ----+--- +-- 在第w楼扔一次蛋 |原创 2010-08-06 10:53:00 · 349 阅读 · 0 评论 -
二叉树最低共同父结点
<br /><br />struct TreeNode<br />{<br /> int m_nvalue;<br /> TreeNode* m_pLeft;<br /> TreeNode* m_pRight;<br />};<br />输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。<br />分析:求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。<br />第一变种是二叉树是一种特殊的二叉树:查找二叉树。也就是树是排序过的,位于左子树上的结原创 2010-09-27 13:49:00 · 570 阅读 · 0 评论