合并-查找算法

1. 查找-合并算法 查找:检查两个对象是否属于同一个集合 合并:用一个集合替代两个对象分别对应的集合。 1.1. 快速查找 数据结构:使用一个大小为N的数组id[],p和q是连通的如果他们对应的id值一样。 例如: 节点: i 0 1 2 3 4 5 ...

2009-11-26 20:20:16

阅读数 16

评论数 0

怎么判断链表中是否有环?

1.判断一个单向链表是否有环: 给定链表的头指针:Node*head。 设2个指针,一个指针每次移动1步,另一个指针每次移动2步,如果2个指针相遇那么说明有环,如果有一个指针到NULL了就说明没有环: bool CircleInList(Link* pHead) { if(pHead =...

2009-11-13 22:22:01

阅读数 42

评论数 0

Finding Duplicate Elements in an Array

I came across an interesting programming puzzle today, and I'd like to share a couple of variants on it. To start with, let's say we have an array...

2009-11-13 21:32:05

阅读数 10

评论数 0

Java String字符串一些方法的性能说明及例子

1.length(),charAt(),substring()的运行时间是常量时间内完成。 2.toLowerCase()和replace()的运行时间与字符串的大小是线性关系。 3.compareTo()和startWith()需要的时间与所要解决问题所使用的字符数量成比例。在最佳情况下,是...

2009-11-13 21:19:43

阅读数 9

评论数 0

基本数据结构的说明(四)

4.图 图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。 图一般可以采用三种方式来表示:使用一个二维数组;使用邻接表;使用边数组。图的遍历一般有深度优先...

2009-11-06 00:14:38

阅读数 9

评论数 0

基本数据结构的说明(四)

 4.图图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。图一般可以采用三种方式来表示:使用一个二维数组;使用邻接表;使用边数组。图的遍历一般有深度优先的方式...

2009-11-06 00:11:00

阅读数 488

评论数 0

基本数据结构的说明(三)

 3.树的说明树:T={K,R}。K是包含n个结点的有穷集合(n>0),关系R满足以下条件:       (1)有且仅有一个结点k0∈K,它对于关系R来说没有前驱结点,结点k0称作树的根。       (2)除结点k0外,K中的每个结点对于关系R来说都有且仅有一个前驱结点。       (3...

2009-11-05 20:51:00

阅读数 374

评论数 0

基本数据结构说明(三)

3.树的说明 树:T={K,R}。K是包含n个结点的有穷集合(n>0),关系R满足以下条件: (1)有且仅有一个结点k0∈K,它对于关系R来说没有前驱结点,结点k0称作树的根。 (2)除结点k0外,K中的每个结点对于关系R来说都有且仅有一个前驱结点。...

2009-11-05 20:45:42

阅读数 15

评论数 0

基本数据结构的说明(二)

2.栈和队列 所谓的栈,是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最近时间插入的元素。遵循FILO(First in,last out,先进后出)的原则。 所谓的队列,也是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最久时间插入的元素。遵循FIFO(Firs...

2009-11-05 01:59:51

阅读数 10

评论数 0

基本数据结构的说明(二)

 2.栈和队列所谓的栈,是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最近时间插入的元素。à遵循FILO(First in,last out,先进后出)的原则。所谓的队列,也是一个含有至少两个基本操作的抽象数据类型:插入新的元素;删除最久时间插入的元素。à遵循FIFO(First i...

2009-11-05 01:58:00

阅读数 530

评论数 0

基本数据结构的说明(一)

 我这里主要是对基本的数据结构进行说明,包括数组,链表,栈,队列,树,图。1.数组和链表的说明数组的这个可以说是大家最广泛使用的数据结构了。数组的最主要的特点是可以支持随机存取,也就是说,我们查询一个值时,可以在O(1)时间内完成。如果我们在数组中删除一个元素,一般都是把后面元素向前移动,返回被删...

2009-11-05 01:40:00

阅读数 923

评论数 0

基本数据结构的说明(一)

我这里主要是对基本的数据结构进行说明,包括数组,链表,栈,队列,树,图。 1.数组和链表的说明 数组的这个可以说是大家最广泛使用的数据结构了。数组的最主要的特点是可以支持随机存取,也就是说,我们查询一个值时,可以在O(1)时间内完成。如果我们在数组中删除一个元素,一般都是把后面元素向前移动,返...

2009-11-05 01:39:27

阅读数 239

评论数 0

开发语言、开发工具、数据结构和算法的关系

在当我们学会了一门语言的时候(也就是说,记住了该语言的语法,词法,还有一些常用的函数),就意味着已经掌握了编写程序的基本工具。无论用的是社么语言,都差不多。只是工具之间有长有短。比如说,delphi,VB之类做windows环境的应用程序很方便;用JAVA开发基于网络的程序很轻松。假如我们用C(C...

2009-11-04 12:54:51

阅读数 9

评论数 0

排序算法(三)

如果我们不采用比较的方式来实现排序,可以采用其他方式实现排序么?是的,可以。 1.桶排序 例如,我们有一个数组,里面的元素如下: 索引:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 元素:0 3 3 0 1 1 0 3 0 2 0 1 1 2 0 根据上...

2009-11-04 02:38:18

阅读数 3

评论数 0

排序算法(三)

 如果我们不采用比较的方式来实现排序,可以采用其他方式实现排序么?是的,可以。1.桶排序例如,我们有一个数组,里面的元素如下:索引:0  1     2     3     4     5     6     7     8     9  10     11    12    13    14元素...

2009-11-04 02:36:00

阅读数 438

评论数 0

排序算法(二)

接下来,我准备说一下快速排序,归并排序和堆排序。 在讲快速排序和归并排序前,首先说一下分而治之的思想,就是说,先将要处理的问题简化,即将复杂的大问题分解为简单的小问题,然后分而治之。一般步骤如下:1)将问题分解为小的子问题。每个子问题与大问题同型,但规模更小。2)递归解决这些子问题。3)将子问题...

2009-11-03 22:31:20

阅读数 0

评论数 0

排序算法(二)

 接下来,我准备说一下快速排序,归并排序和堆排序。在讲快速排序和归并排序前,首先说一下分而治之的思想,就是说,先将要处理的问题简化,即将复杂的大问题分解为简单的小问题,然后分而治之。一般步骤如下:1)将问题分解为小的子问题。每个子问题与大问题同型,但规模更小。2)递归解决这些子问题。3)将子问题的...

2009-11-03 22:29:00

阅读数 685

评论数 0

排序算法(一)

一般来说,排序算法有10种,今天先说4种,并给出基本的代码。如有错误,欢迎大家指正。如果大家比较忙,忙着去泡妞的话,可以直接跳到最后看我的小结部分。 为了便于后面的讨论和理解,这里先做一个约定,就是把你要排序的元素假想为大小不一的一些球,这些球都放在一个容器里。排序的过程是把这些球拿出来按照...

2009-11-03 10:46:17

阅读数 3

评论数 0

排序算法(一)

 一般来说,排序算法有10种,今天先说4种,并给出基本的代码。如有错误,欢迎大家指正。如果大家比较忙,忙着去泡妞的话,可以直接跳到最后看我的小结部分。为了便于后面的讨论和理解,这里先做一个约定,就是把你要排序的元素假想为大小不一的一些球,这些球都放在一个容器里。排序的过程是把这些球拿出来按照一个指...

2009-11-02 19:47:00

阅读数 475

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭