- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法课讲稿
第5组 算法课讲稿
—————小组成员
§6-1 集合上的基本操作
在算法设计中,集合是许多重要抽象数据类型的基础。有许多的问题也常常是用集合来描述的。与一个问题有关的数据一般取自某一特定集合,该集合称为问题的定义域(或全集)。求解问题的算法可用问题定义域上的基本操作来实现。
如果把问题所考察的数据全体称为集合U(全集),可变子集记为S, S≤U, 集合中的一个具体数据或唯一表征该数据的关键字称为元素,则在集合S上的操作大致如下:
MENBER ( a, S ) 询问元素a 是否属于集合 S
INSERT ( a ,S ) 把一个元素a插入集合 S
DELETE ( a , S) 把一个元素a 从集合中S删除
MIN ( S ) 给出S中的最小元素
FIND( a ) 在集合S中检索元素a
SPLIT ( a , S ) 以a为界,将集合S分成两个集合S1、S2
UNION ( S1 , S2 ,S ) 合并集合S1、S2,用S1∪S2代替S
实际问题往往可以分成几个较小的问题,对于每个问题又可以抽象的描述成某种数据集合上的上述7种操作的某一种操作。
例如求某一无向连同图的最小耗费树,在他当中就要用到INSETT、 DELETE、 UNION、 FIND及MIN 操作。
设G=(V , E ) , 其生成的无向树 S=( V 、T ), 而它的生成森林是一个无向树的集合 {(V1 , T1),(V2 , T2)…… (Vk , Tk)}, 并使得Vi 形成一个 V的划分,即
∪Vi=V 且 Vi ∩Vj=Φ (i≠j)
例1 给定图G=(V , E ) 构造最小耗费生成树
算法6-1 利用集合上的操作求图G的最小耗费生成树
begin
T←Φ
VS ←Φ
for 每个顶点v∈V do 把只有一个元素的集合{v}加到VS;
while ||VS|| 1 do
begin
选出E中最低耗费的边 (V, W)
从E中删去边(V , W)
if v和w属于VS中两个不同的集合W1,W2, then
begin
用 W1 ∪W2 替换VS中的W1和W2
边(v , w)加入T
end
end
end
这个算法中的行5是在集合上运用操作MIN, 行6是执行DELETE操作,执行着两种操作利用对结构(求最大、最小元素)很方便。行7要确定边(v , w)是否连接了生成森林中的两棵树。如果是,那么被(v , w)连接的两棵树就在行8中合并(即执行操作UNION),而行9 把边(v , w)加入最终生成树的边集T(执行操作INSERT)。总的来说,行7要求找到特定节点的集合的名字,即执行FIND, 行8执行UNION操作,而行9执行INSERT操作。
§6-2 二叉检索
前提:U,S是两个集合,S是U的真子集, S中有n个元素,并具有线序≦ , 而且已经存储在数组A中,A(1)A(2)…A(n)。 U中元素a是否在S中?
定义:集合S的二叉检索树是一有标记的二叉树,它的每个节点v用一个元素L(v)∈S
来标记,使得
对于v的左子树中的每个节点u,有 L(u)L(v)
对于v的右子树中的每个节点w,有 L(w)L(v)
对于每个元素a∈S, 恰有一个节点v, 使得 L(v)=a
显然,集合S中的元素和二叉树中的标号之间存在一一对应的关系。这样L(v)=a 就是在二叉树中寻找节点v , 其标号的值恰恰为a 。
算法6-2 在二叉树中寻找元素a
集合S的二叉树及元素a
procedure SEARCH(a, v)
if a=L(v) then return “yes”
else
if aL(v) then
if v 有左子树U then return SEARCH(a,U)
else return “no”
else
if v 有左子树W then return SEARCH(a,W)
else return “no ”
end
此算法,显然执行了MENBER(a , S) 操作。
对于此算法稍加修改久可以执行MIN 、INSERT操作。(稍后会举例)
定理
您可能关注的文档
- 嘉定区迎园小学世博安全保卫工作方案.doc
- 后勤安全工作责任制度.doc
- 佛山市三水区建设局工作人员行政过错责任追究制度.doc
- 北海国际学院消防安全检查方案.doc
- 会计制度设计辅导二.doc
- 博士班研究生资格考核及学位考试相关规定.doc
- 交通安全学习手册.doc
- 劳动派遣关系中的雇主替代责任.doc
- 创建平安单位综合治理责任追究制度.doc
- 丰泽区第四中心小学2009年春安全教育周活动方案.doc
- 水利水电工程质量检测员继续教育系统基础考试试题及答案(各种收集).pdf
- 毕业论文设计模板.pdf
- 2025年云南省寻甸县第五中学高三下学期教学质量监测(一)数学试题试卷含解析.doc
- 2025年云南省玉溪市师院附中高三数学试题寒假周考试卷含解析.doc
- 2025年云南省玉溪市新平一中高三第一次教学质量监测(4月)数学试题含解析.doc
- 2025年云南省玉溪市新平一中高三下学期考前模拟考试数学试题含解析.doc
- 2025年云南省宣威市第四中学招生全国统一模拟考试数学试题含解析.doc
- 2025年云南省元江民中高三下学期二模(4月)数学试题含解析.doc
- 2025年云南省元江县民族中学高三质量检查数学试题含解析.doc
- 2025年云南省沾益县第四中学下学期期中考高三试卷数学试题含解析.doc
文档评论(0)