计算机辅助工程安全需求,ch2计算机辅助工程基本.ppt

ch2计算机辅助工程基本

第二章 计算机辅助工程基础 数据结构 例—交叉口仿真系统控制结构 当采用仿真方法分析一系列交叉口所发生的交通状态时,需要采用分时处理技术分别逐个改变每一个交叉口的状态,同时系统整体环境也在发生着一些具有时间先后次序的情况。 二叉树 二叉树在树结构的应用中起着非常重要的作用 对二叉树的许多操作算法简单; 而任何树都可以与二叉树相互转换,解决了树的存储结构及其运算中存在的复杂性。 定义:二叉树是由n(n>=0)个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。 这也是一个递归定义。二叉树可以是空集合,根可以有空的左子树或空的右子树。 二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要进行区分,说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。 二叉树的5种形式 例题 已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是EBCDAFHIGJ, 试画出这棵二叉树。 当前序序列为ABECDFGHIJ,中序序列为EBCDAFHIGJ时,逐步形成二叉树的过程如下图所示: 习题 给定权值集合{15, 03, 14, 02, 06, 09, 16, 17}, 构造相应的霍夫曼树, 并计算它的带权外部路径长度。 假定用于通信的电文仅由8个字母c1, c2, c3, c4, c5, c6, c7, c8组成, 各字母在电文中出现的频率分别为5, 25, 3, 6, 10, 11, 36, 4。试为这8个字母设计不等长Huffman编码, 并给出该电文的总码数。 解答 已知字母集 { c1, c2, c3, c4, c5, c6, c7, c8 },频率 {5, 25, 3, 6, 10, 11, 36, 4 },则Huffman编码为: 最短路径 求最短路径的Dijkstra算法 设有向图G=(V,E),其中,V={0,1,2,……,n},cost是表示G的邻接矩阵,cost[i][j]表示有向边的权。若不存在有向边,则cost[i][j]的权为无穷大。 设s是一个集合,其中的每个元素表示一个顶点,从源点到这些顶点的最短距离已经求出。设顶点1为源点,集合初态s={0}。 数组dist记录从源点到其他各项点当前的最短距离,其初值为dist[i]=cost[0][i],i=1,2,…,n。 从s之外的顶点集合V-S中选出一个顶点w,使dist[w]的值最小。于是从源点到达w只通过s中的顶点,把w加入集合s中,调整dist中从源点到V-S中每个顶点v的距离: dist[v] =min{dist[v],dist(w)+cost[w][v]} 最短路径 重复上述过程,直到s中包含v中其余各项点的最短路径。 最终结果是:s记录了存在从源点到达的路径的顶点集合,数组dist记录了从源点到V中到其余各项点之间的最短路径. Example Answer Answer (Con 1) 最后的输出结果如下: 1←3←2 35 2 0 3←2 15 4←3←2 30 5←2 10 6←2 ∞ 算法及其复杂度分析 (1)有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。 (2)确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。并且在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。 (3)可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。 (4)输入:一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。 (5)输出:一个算法有一个或多个的输出。这些输出是同输入有着某些特定关系的量。 算法及其复杂度分析 通常设计一个“好”的算法应考虑达到以下目标: (1)正确性:算法应当满足具体问题的需求。通常一个大型问题的需求,要以特定的规格说明方式给出,而一个不那么严格的问题至少应当包括对于输入、输出和加工处理等明确的无歧义性的描述。设计或选择的算法应当能正确地反映这种需求。 (2)可读性:算法主要是为了人的阅读与交流,其次才是机器执行。可读性好有助于人对算法的理解;晦涩难懂的程序易于隐藏较多错误,难以调试和修改。 (3)健壮性:当输入数据非法时,算法也能适当地作出反应或进行处理,而不会产生莫明其妙的输出结果。 (4)效率与低存储量需求:通俗地说,效率指的是算法执行时间。存储量需求指算法执行过程中所需要的最大存储空间。一个好算法要有高的执行效率和低的存储量需求。 算法及其复杂度分析 通常设计一个“好”的算法应考虑达到以下目标: (1)正确性:算法应当满足具体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值