算法
文章平均质量分 75
keepchasing
这个作者很懒,什么都没留下…
展开
-
字符串匹配 之 KMP
作者: 阮一峰日期: 2013年5月 1日字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Don转载 2014-03-21 13:24:27 · 368 阅读 · 0 评论 -
排序 之 快排
理解各变量的含义 void quicksort(int a[],int p,int r) // p与r 分别是起始元素与终止元素的下标{ if(r>p) { int x=a[r]; int i=p-1; int j; for(j=p;j<r;j++) { if(a[j]<x) { i++; int tmp; tmp=a[i]; a[i]=a[原创 2014-03-27 22:09:55 · 562 阅读 · 0 评论 -
等概率随机函数的实现
转自 http://blog.163.com/zhaohai_1988/blog/static/209510085201282014227654/利用等概率函数Rand5产生等概率函数Rand3问题描述:现在有一个叫做Rand5的函数,可以生成等概率的[0, 5)范围内的随机整数,要求利用此函数写一个Rand3函数(除此之外,不能再使用任何能产生随机数的函数或数据源),生成等概转载 2014-08-15 10:47:12 · 505 阅读 · 0 评论 -
排序 之 堆
概念:大根堆:每个节点的键值,都大于或等于其孩子节点的键值。小根堆:每个节点的键值,都小于或等于其孩子节点的键值。堆排序将数组中的数据看成一颗完全二叉树,利用孩子节点与双亲节点的关系来构造最大堆1. 从非叶子节点为第一个点开始构建大根堆2. 将堆顶元素R[1]与最后一个元素R[n],交换得到新的无序区R[1]....R[n-1]和和有序区R[n]3.步骤2之后R原创 2014-03-28 11:24:28 · 442 阅读 · 0 评论