
算法
文章平均质量分 93
pi9nc
这个作者很懒,什么都没留下…
展开
-
由rand7生成rand10以及随机数生成方法的讨论
由rand7生成rand10以及随机数生成方法的讨论问题:rand7是一个能生成1-7的整数随机数。要求利用rand7生成1-10的整数随机数。可以参看原帖。在lz提示下又找到了更简洁的方法,同余循环法,只需要一行代码!我很浅的探讨几种方法,还需要更深入的学习。感慨一下知识的浩瀚和自己的渺小。1.组合数学方法我在帖子里给出了这样的方法,这个很简单的算法,却似乎不那么容易转载 2012-10-23 15:15:14 · 1023 阅读 · 0 评论 -
100楼层2个手机问题及其推广(百度面试题目)
一个楼层有100层,已知手机在其中的某一层摔下就会坏,现在有两个一样的手机,请问,最少能摔几次保证一定找出那个极限的楼层值.(从101层掉下必坏).我们把有n个手机的问题用Q(n)表示,下面将分别考虑问题.问题: 所谓的最少次数是什么意思分析:所谓的最少次数是指要给出一个算法,按照这个算法,无论如何都能保证在给定的步数内找出来(不论这个手机的极限层楼是几楼)转载 2012-10-23 19:49:14 · 1446 阅读 · 0 评论 -
求二叉树中两个节点p,q的最低公共祖先节点
题目要求:求二叉树中两个节点p,q的最低公共祖先节点 首先,题目中没有明确说明节点的结构,所以思考了一会然后问面试官节点有没有父指针,面试官说有没有父指针有影响吗?我说有,然后他笑着说你来说说看。当时,只做出来有父指针的情况,没有父指针的情况压根想不出来。后来会实验室静下心来很快就想到了思路。这里分这两种情况讨论: 1. 二叉树节点具有父指针转载 2012-10-24 15:14:05 · 4533 阅读 · 0 评论 -
并查集 (Union-Find Sets)
并查集 (Union-Find Sets)并查集:(union-find sets)是一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集,并利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。这样优化实现的并查集,空间复杂度为O(N),建立一个集合的时间复杂度为O(1),N转载 2012-10-24 17:19:14 · 940 阅读 · 0 评论 -
有向图强连通分量的Tarjan算法
强连通分量问题通常可归纳为要求出强连通分量,然后通过缩点(将得出的每个连通分量视为一个点,然后继续构图,例如连通分量A有一个点有一条边指向连通分量B的一个点,那么在A上搭一条边到B,其他连通分量也以此类推)。求图的强连通分量一个算法为tarjan,在http://www.byvoid.com/blog/scc-tarjan/这博客中对tarjan的算法描述得非常的详细。我这里转载方便自己以后看转载 2012-11-02 15:27:14 · 683 阅读 · 0 评论 -
欧几里德算法和扩展欧几里德算法
欧几里德算法和扩展欧几里德算法欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是转载 2012-11-02 15:39:47 · 1555 阅读 · 0 评论 -
田忌赛马(Tian Ji -- The Horse Racing)中的动态规划以及贪心算法
这两天碰到一道看似很简单,但是实际做起来确实比较难的问题,在这里分析讨论一下。题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052Tian Ji -- The Horse RacingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java转载 2012-11-02 20:53:57 · 2028 阅读 · 0 评论 -
整数拆分的两种解法(已完成)
整数拆分的两种解法(已完成)4.1 集合的分划和第二类Stirling数定义1 (集合的划分)设A 是有限集.A 的一族子集{Ai}称为是集A 的一个划分,如果满足:(1)每个子集Ai 都非空;(2)这些子集两两不交;(3)它们的并为A.每个Ai称为划分的一个块,有k个块的划分称为k- 划分.定义2 (第二类转载 2012-11-02 20:01:06 · 18165 阅读 · 0 评论 -
初识EM algorithm
初识EM algorithm分类: 统计计算statistical computing2011-12-10 21:15 77人阅读 评论(0) 收藏 举报很多书阐述了EM algorithm的原理,直接点可以在维基百科上找到它的基本情况:http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algor转载 2012-11-02 21:47:35 · 770 阅读 · 0 评论 -
Gibbs sampling & R
Gibbs sampling & R分类: R 统计计算statistical computing 抽样、模拟、实验设计2011-12-13 21:28 404人阅读 评论(0) 收藏 举报维基百科的定义:http://en.wikipedia.org/wiki/Gibbs_sampling我们假设一个随机的二元变量(x,y),然后计算其中一个或全部的边缘分布p(x转载 2012-11-02 21:50:18 · 2579 阅读 · 0 评论 -
零零散散学算法之详解RMQ & LCA
2第一节 RMQ、LCA概述 LCA:Lowest Common Ancestor,译为最近公共祖先。其解释就是说:在有根树中,找出树中任意两个节点最近的公共祖先,或者说找到任意两个节点离树根最远的公共祖先。 RMQ:Range Minimum Query,译为区间最小值查询。其解释就是说:对于含有N个元素的数列A,在数列中找转载 2012-11-02 21:58:07 · 2926 阅读 · 2 评论 -
特征选择常用算法综述
特征选择常用算法综述Posted on 2011-01-02 14:40 heaad 阅读(7207) 评论(10) 编辑 收藏 1 综述(1) 什么是特征选择特征选择 ( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ) ,或属性选择( Attribute Selection ) ,是指从全转载 2012-11-04 15:23:26 · 2290 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总转载 2012-11-04 12:30:40 · 1511 阅读 · 0 评论 -
常见hash算法的原理
散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列转载 2012-11-02 10:43:45 · 5553 阅读 · 0 评论 -
牛顿法
Aim: Find oˆ such thatProblem: Analytic solution of likelihood equations not always available. Example: Censored exponentially distributed observations Suppose that and that the censored ti转载 2012-11-02 21:46:12 · 689 阅读 · 0 评论 -
杰弗里斯对归纳推理理论的规则
杰弗里斯对归纳推理理论的规则分类: 贝叶斯计算2012-02-22 19:35 823人阅读 评论(0) 收藏 举报 回忆一下归纳中最重要的部分是将过去的经验推广,来预测未来将被观测到的现象,现在来论述由杰弗里斯提出的一组管理归纳过程的规则。 规则1用到的所有假设必须是清楚叙述的,结论必须是由该假设导出的。 规则2归纳的理转载 2012-11-02 21:48:58 · 1023 阅读 · 0 评论 -
背包九讲
【转】背包九讲-dd_engi-第一部分 (2012-03-24 23:26:49)转载▼标签: 背包 动态规划 空间复杂度 物品 杂谈分类: mass转载:dd_engi 的背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三转载 2012-11-03 09:39:07 · 27234 阅读 · 2 评论 -
数据结构之线段树
数据结构之线段树Category: 数据结构与算法 View: 13,459 阅 Author: Dong作者:Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://dongxicheng.org/structure/segment-tree/1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条转载 2012-11-04 18:23:16 · 677 阅读 · 0 评论 -
条件随机场 conditional random fields 及代码实现
条件随机场 conditional random fields 及代码实现分类: 机器学习2012-08-27 10:29 301人阅读 评论(0) 收藏 举报条件随机场模型是由Lafferty在2001年提出的一种典型的判别式模型。它在观测序列的基础上对目标序列进行建模,重点解决序列化标注的问题条件随机场模型既具有判别式模型的优点,又具有产生式模型考虑到上下文标记间的转移转载 2012-11-12 20:58:40 · 11373 阅读 · 0 评论 -
鸽巢原理
抽屉原理百科名片 抽屉原理桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1或多于n+1个元素放到n个集合中去,其中必定至少有一个集合里有两个元素。” 抽屉原理有转载 2013-01-15 16:26:47 · 11420 阅读 · 0 评论 -
约瑟夫环问题
继续笔试准备ing……分享一下昨天做到的其中一题,其实题目很老,也做过n遍了,但复习起来也是颇有韵味,同时还发现另一种妙解,感觉不错的。问题描述: 约瑟夫环问题(Josephus) 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。(约瑟夫环问题 Josephus)解法一(My Solution): 思想转载 2013-01-15 16:55:19 · 715 阅读 · 0 评论 -
排序算法——桶排序
排序算法——桶排序2009-12-02 12:01 2817人阅读 评论(0) 收藏 举报 桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性转载 2013-01-15 17:07:11 · 631 阅读 · 0 评论 -
从归并排序到数列的逆序数对(微软笔试题)
从归并排序到数列的逆序数对(微软笔试题)分类: 白话经典算法系列2012-10-15 09:15 5960人阅读 评论(16) 收藏 举报首先来看看原题 微软2010年笔试题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和转载 2013-01-19 20:36:47 · 749 阅读 · 0 评论 -
随机生成和为S的N个正整数——投影法
【白话经典算法系列之十三】随机生成和为S的N个正整数——投影法分类: 白话经典算法系列 Windows编程2013-01-04 13:46 2459人阅读 评论(17) 收藏 举报白话经典算法和为S的N个正整数投影法随机三趣题【白话经典算法系列之十三】随机生成和为S的N个正整数——投影法 随机生成和为S的N个正整数有很多种解法。下面讲解一种比较高效且比较转载 2013-01-19 20:56:28 · 738 阅读 · 0 评论 -
有趣的GOOGLE面试题
白话经典算法系列之十 一道有趣的GOOGLE面试题分类: 白话经典算法系列2012-11-21 09:03 12366人阅读 评论(58) 收藏 举报白话经典算法GOOGLE面试题谷歌面试题基数排序哈希表微博http://weibo.com/MoreWindows已开通,欢迎关注。最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:转载 2013-01-19 20:58:40 · 761 阅读 · 0 评论 -
回溯法
回溯全排列2013-01-20 00:18 271人阅读 评论(0) 收藏 举报回溯的实质是在问题的解空间进行深度优先搜索。DFS是个图的算法,但是回溯算法中的图在哪里呢?我们把解空间中的一个解状态当成一个节点,由于解空间非常庞大,所以这个图也就大到无法想象了。举个例子吧,比如全排列问题,对于n个元素进行全排列,一共有n!种可能,比如n=9时,一共有9! = 362转载 2013-01-22 18:28:49 · 778 阅读 · 0 评论 -
图论--强连通分支
有向图的强连通分支在有向图G中,如果任意两个不同的顶点相互可达,则称该有向图是强连通的。有向图G的极大强连通子图称为G的强连通分支。把有向图分解为强连通分支是深度优先搜索的一个经典应用实例。下面介绍如何使用两个深度优先搜索过程来进行这种分解,很多有关有向图的算法都从分解步骤开始,这种分解可把原始的问题分成数个子问题,其中每个子子问题对应一个强连通分支。构造强连通分支之间的联系也就把子问题的转载 2013-03-06 10:37:15 · 22774 阅读 · 0 评论 -
图论基础
2009-11-29 03:57 399人阅读 评论(1) 收藏 举报算法eachgraphsortingtree扩展图的表示法图G = (V, E)的表示有邻接表和邻接矩阵两种形式。通常,对于| E |远小于| V | ^ 2的稀疏图,用邻接表比较合适。若图稠密或很小,或必须很快判别给定的两个顶点是否存在连接的边时,通常用邻接矩阵表示法。 关键点(Articulation转载 2013-03-13 16:16:40 · 807 阅读 · 0 评论 -
程序员编程艺术:三之三续、求数组中给定下标区间内的第K小(大)元素
程序员编程艺术:三之三续、求数组中给定下标区间内的第K小(大)元素分类: 11.TAOPP(编程艺术) 13.TAOPP array 19.TAOPP algorithms2011-05-28 17:34 17621人阅读 评论(35) 收藏 举报编程算法测试数据结构存储面试 第三章三续、求数组中给定下标区间内的第K小(大)元素转载 2013-03-19 16:21:42 · 1029 阅读 · 0 评论 -
从Trie树(字典树)谈到后缀树(10.28修订)
从Trie树(字典树)谈到后缀树(10.28修订)分类: 24.data structures 16.TAOPP tree2011-10-22 20:34 47348人阅读 评论(57) 收藏 举报算法数据结构constructiontreenull数据库目录(?)[+] 从Trie树(字典树)谈到后缀树转载 2013-03-19 17:20:57 · 773 阅读 · 0 评论 -
从B树、B+树、B*树谈到R 树
从B树、B+树、B*树谈到R 树分类: 24.data structures2011-06-07 17:52 102865人阅读 评论(261) 收藏 举报磁盘数据结构存储tree数据库insert从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其转载 2013-03-19 17:22:21 · 641 阅读 · 0 评论 -
C++ STL——heap相关算法
C++ STL——heap相关算法#include "stdafx.h"#include #include #include #include #include using namespace std;int main(int argc, char* argv[]){ int a[5]={0,1,2,3,4};m原创 2013-03-20 09:16:26 · 734 阅读 · 0 评论 -
STL源码学习----next_permutation和prev_permutation算法
STL源码学习----next_permutation和prev_permutation算法2012-05-30 09:44 by CobbLiu, 124 阅读, 0 评论, 收藏, 编辑 STL中也提供了迭代器范围内的排列算法,next_permutaion和prev_permutation即是。本文先给出常见的一种字符串全排列算法,然后分析STL提供的next_perm转载 2013-03-23 11:02:52 · 741 阅读 · 0 评论 -
字符串的全排列与组合
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2013-03-24 09:47:40 · 2200 阅读 · 0 评论 -
字符串的匹配 -KMP
教你初步了解KMP算法 作者: July 、saturnma、上善若水。 时间; 二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹转载 2013-03-24 20:36:57 · 1527 阅读 · 0 评论 -
stl中binary_search算法相关学习;
1·std::lower_bounddefault (1)template ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);cus转载 2013-03-25 17:00:51 · 1225 阅读 · 0 评论 -
线段树,树状数组
线段树博客分类: 算法线段树的构造思想 线段树是一棵二叉树,树中的每一个结点表示了一个区间[a,b]。每一个叶子节点表示了一个单位区间。对于每一个非叶结点所表示的结点[a,b],其左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2,b]。 例如: 线段树的运用 线段树的每个节点上往往都增加了一些其他的域。在这些域中保转载 2013-04-09 20:18:17 · 4666 阅读 · 3 评论 -
A* (路径搜索)算法导引
A* (路径搜索)算法导引前言:A*算法是路径搜索中的经典算法,也是公认的最优算法之一,网上找到一篇文章讲的很好,适合入门,所以翻译了一下,没有完全参照原文,主要还是意译,网上也有其他人翻译好的,个人觉得还是自己来一遍比较好,读者自斟:原文开始:搜索区域这里假设有人要从A点去往B点,另外有一面墙将两者分开。如下图所示,绿色方块代表A点,红色方块代表B点,蓝色代表分开他们的墙转载 2013-04-09 20:23:50 · 6072 阅读 · 0 评论 -
Trie树:应用于统计和排序
Trie树:应用于统计和排序分类: 大数据处理 搜索引擎Search Engine 数据结构与算法2012-10-31 17:08 1264人阅读 评论(4) 收藏 举报数据结构算法目录(?)[+] 1. 什么是trie树 1.Trie树 (特例结构树) Trie树,又称单词转载 2013-04-23 15:25:56 · 683 阅读 · 0 评论 -
各种排序算法对比
各种排序算法对比分类: 算法学习2010-07-31 21:25 168人阅读 评论(0) 收藏 举报算法n2shell数据结构存储工作目录(?)[+]选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法: 这是最原始,也是众所周知的最慢的转载 2013-04-15 19:17:22 · 593 阅读 · 0 评论