
数据结构和算法
文章平均质量分 77
steven30832
程序员,还在上学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快速排序
快速排序的重点在于Partition过程的实现,该过程主要是将数组分为三段,即:小于key值的一段,key值,大于key值的一段。 这里写了两种Partition过程的方式 Partition方式一的代码如下: int Partition(int s[],int p,int r) { /*对s[p...r]进行Partition过程 *以s[p]的值为基准,将数组分为两个原创 2010-04-12 16:03:00 · 554 阅读 · 0 评论 -
最大堆实现对大优先队列
/* *利用最大堆实现一个最大优先队列 */ #include using namespace std; int *queue; //队列 int const maxLength = 5; //队列最大长度 int curLength = 0; //当前队列长度 void MAX_HEAPIFY(int*,int,int); void MAX_HEAP_BUIL原创 2010-04-05 12:12:00 · 550 阅读 · 0 评论 -
堆排序
#include #include #include using namespace std; int *A; int const LEN = 10; void MAX_HEAPIFY(int a[],int i,int len); void BUILD_MAX_HEAP(int a[],int len); void HEAP_SORT(int a[],int len)原创 2010-04-05 09:43:00 · 332 阅读 · 0 评论 -
常数时间初始化向量
来自《编程珠玑》1.6.9 使用更多的空间来换取更少的运行时间存在一个问题:初始化空间本身需要消耗大量的时间。说明如何使用一种技术,在第一次访问向量的某项的时候将其初始化为0。提示:采用空间换时间的方式,并且空间占用和向量长度成线性关系。这种方式仅在【空间很廉价】【时间很昂贵】【向量很稀疏】的时候有用。 一直没有想到这个问题怎么处理,后来上网搜了一下。发现了答案。先看答案:原创 2012-11-29 15:10:40 · 991 阅读 · 0 评论 -
最长公共子串(连续)问题
动态规划有一个经典问题是最长公共子序列,但是这里的子序列不要求连续,如果要求序列是连续的,我们叫公共子串,那应该如何得到这个串呢? 最简单的方法就是依次比较,以某个串为母串,然后生成另一个串的所有长度的子串,依次去母串中比较查找,这里可以采用先从最长的子串开始,减少比较次数,但是复杂度依然很高! 然后重新看一下这个问题,我们建立一个比较矩阵来比较两个字符串str1和str2原创 2012-12-05 15:55:32 · 22113 阅读 · 9 评论