.Net类库中实现的HashTable
摘要:这个HashTable用开放定址法解决冲突,用双散列法进行探测。装填因子过高之后使用再散列法扩充,涉及到的算法都不是很复杂,即使不使用数学工具,也可以简单的分析下:-) 。本文以.net fx's HashTable为例,回顾HashTable的基础理论。HashTable是一种能提供...
HDOJ 1042 解题报告
HDOJ 1042 解题报告题目:N!Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27481Accepted Submission(s): 7...
HDOJ 1036 解题报告
HDOJ 1036 解题报告Average is not Fast Enough!Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1791Accep...
Fisher–Yates shuffle 洗牌算法
1,缘起 最近工作上遇到一个问题,即将一组数据,比如[A,B,C,D,E]其中的两个B,E按随机排列,其他的仍在原来的位置: 原始数组:[A,B,C,D,E] 随机字母:[B,D] 可能结果:[A,B,C,D,E],[A,D,C,B,E] 在解决这个问题的过程中,需要解决的一个问题是,怎么样让一个数...
HDOJ 1039 解题报告
HDOJ 1039 解题报告Easier Done Than Said?Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3152Accepted S...
HDOJ 1035 解题报告
HDOJ 1035 解题报告Robot MotionTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2785Accepted Submission(...
算法洗脑系列(8篇)——第三篇 贪心思想
说到“贪”字,很邪恶的一个词,记得和珅和大人拆解过这个字,为”今“和”贝“,而”贝“字分解成”上面的那个XX“和”人“,意思就是说今天你贪了,明天一座监狱就把你套起来,纵观古今,有多少豪杰与"贪“结下了不解之缘,呵呵,扯远了。 这个贪心的行为在算法中也成为了一种指导思想,也就是说贪心算法所...
A*寻路初探 GameDev.net
译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。 这篇文章非常知名,国内应该有不少人翻译过它,我没有查找,觉得翻译本身也是对自身英文水平的锻炼。经过努力,终于完成了文...
Hash算法及其应用
Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从...
算法洗脑系列(8篇)——第二篇 递归思想
今天说说递归思想,在我们编码时,有的时候递归能够让我们的算法更加通俗易懂,并且代码量也是大大的减少。比如我先前的系列中说到了关于树的“先序,中序和后序”遍历,那么看看用递归来描叙这个问题是多少的简洁,多么的轻松。 1 #region 二叉树的先序遍历 2 /// <summary> 3 ...
算法洗脑系列(8篇)——第一篇 递推思想
像俺一样奋斗在一线的码农们,一谈到学编程,都是说要学会XX语言就OK了,其实我们理解的有一点点的偏差,因为我们只说到了三分之一,其实真正的编程应该是:编程=数据结构+算法+XX语言。 对的,XX语言只是一个工具而已,就好比我们知道用笔来写字,但是不见得我们就能写出一手让张恨水为之倾倒的好字,其实我也...
【轻松学排序算法】眼睛直观感受几种常用排序算法
1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上...
图的深度优先搜索/Depth-first search/C++
图是一种常见的数据结构,深度优先和广度优先搜索都是常用的算法,这篇博文先介绍深度优先搜索。和往常一样的,我会用朴实的语言来介绍它,所以只要认真看一定能理解。开始会先介绍下图的表示方法,如果已经掌握了大可跳过。图的表示要表示一个图G(V,E)有两种常见的表示方法,邻接矩阵和邻接表。这两种方法可用于有向...
从B 树、B+ 树、B* 树谈到R 树(转)
出处:http://blog.csdn.net/v_JULY_v。第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tre...
算法系列15天速成——第十五天 图【下】(大结局)
今天是大结局,说下“图”的最后一点东西,“最小生成树“和”最短路径“。一: 最小生成树1. 概念 首先看如下图,不知道大家能总结点什么。 对于一个连通图G,如果其全部顶点和一部分边构成一个子图G1,当G1满足: ① 刚好将图中所有顶点连通。②顶点不存在回路。则称G1就是G的“生成树”。 其实一句话总...
动态规划解背包问题/C++/Knapsack problem
前言背包问题是一个经典的算法问题,可以用动态规划,贪心法,分支界限法等方法解决问题描述:有n个物品,编号1,2,3,、、n,其中第 i 个物品重量为Wi 价值 Vi ,有一个容量为W的背包。在容量允许范围内,如何选择物品,可以得到最大的价值。(为了简单起见,假设物品的重量 Wi 和价值Vi 都是正数...
算法系列15天速成——第十四天 图【上】
今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样被几个性质定理框住了,元素之间的关系还是比较明显的,图的使用范围很广的,比如网络爬虫,求最短路径等等,不过大家也不要胆怯,越是复杂的东西越能体现我们码农的核心竞争力。 既然要学习图,得要...
随机生成13位绝对无重复随机数的高效方法
问题描述:随机生成13位绝对无重复随机数的高效方法。问题思路:1、 预先生成好所有无重复随机数并存储,按需取数;2、 随机生成,即时比对当前所有已生成数。若存在,则重新生成。3、 寻找一个好的无冲突的hash算法(或冲突概率较低)。4、 按照一定的算法来生成伪随机数,要求满足一定数量级内无相似度或较...
递归再一次让哥震惊了
递归再一次让哥震惊了先说那两个让哥震惊的递归问题:1:用递归实现单链表的倒序输出2:从二叉查找树中删除节点,并保证还是二叉查找树同学们可以开始思考这两个问题了,当然你可能N年前就遇到过这两个问题,那么不妨看看,看你是否真的理解了递归。实现这两个问题的代码当然很简单,就在下面。百度百科中递归的名片:递...

