欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    算法设计与分析基础第三版PPTch.ppt

    • 资源ID:6329411       资源大小:343.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    算法设计与分析基础第三版PPTch.ppt

    Transform and Conquer,This group of techniques solves a problem by a transformation toa simpler/more convenient instance of the same problem(instance simplification)a different representation of the same instance(representation change)a different problem for which an algorithm is already available(problem reduction),Instance simplification-Presorting,Solve a problems instance by transforming it intoanother simpler/easier instance of the same problemPresortingMany problems involving lists are easier when list is sorted,e.g.searching computing the median(selection problem)checking if all elements are distinct(element uniqueness)Also:Topological sorting helps solving some problems for dags.Presorting is used in many geometric algorithms.,How fast can we sort?,Efficiency of algorithms involving sorting depends onefficiency of sorting.Theorem(see Sec.11.2):log2 n!n log2 n comparisons are necessary in the worst case to sort a list of size n by any comparison-based algorithm.Note:About nlog2 n comparisons are also sufficient to sort array of size n(by mergesort).,Searching with presorting,Problem:Search for a given K in A0.n-1 Presorting-based algorithm:Stage 1 Sort the array by an efficient sorting algorithm Stage 2 Apply binary search Efficiency:(nlog n)+O(log n)=(nlog n)Good or bad?Why do we have our dictionaries,telephone directories,etc.sorted?,Element Uniqueness with presorting,Presorting-based algorithm Stage 1:sort by efficient sorting algorithm(e.g.mergesort)Stage 2:scan array to check pairs of adjacent elements Efficiency:(nlog n)+O(n)=(nlog n)Brute force algorithm Compare all pairs of elements Efficiency:O(n2)Another algorithm?Hashing,Instance simplification Gaussian Elimination,Given:A system of n linear equations in n unknowns with an arbitrary coefficient matrix.Transform to:An equivalent system of n linear equations in n unknowns with an upper triangular coefficient matrix.Solve the latter by substitutions starting with the last equation and moving up to the first one.a11x1+a12x2+a1nxn=b1 a1,1x1+a12x2+a1nxn=b1 a21x1+a22x2+a2nxn=b2 a22x2+a2nxn=b2 an1x1+an2x2+annxn=bn annxn=bn,Gaussian Elimination(cont.),The transformation is accomplished by a sequence of elementary operations on the systems coefficient matrix(which dont change the systems solution):for i 1 to n-1 do replace each of the subsequent rows(i.e.,rows i+1,n)by a difference between that row and an appropriate multiple of the i-th row to make the new coefficient in the i-th column of that row 0,Example of Gaussian Elimination,Solve 2x1-4x2+x3=6 3x1-x2+x3=11 x1+x2-x3=-3 Gaussian elimination 2-4 1 6 2-4 1 6 3-1 1 11 row2(3/2)*row1 0 5-1/2 2 1 1-1-3 row3(1/2)*row1 0 3-3/2-6 row3(3/5)*row2 2-4 1 6 0 5-1/2 2 0 0-6/5-36/5 Backward substitution x3=(-36/5)/(-6/5)=6 x2=(2+(1/2)*6)/5=1 x1=(6 6+4*1)/2=2,Pseudocode and Efficiency of Gaussian Elimination,Stage 1:Reduction to an upper-triangular matrixfor i 1 to n-1 do for j i+1 to n do for k i to n+1 do Aj,k Aj,k-Ai,k*Aj,i/Ai,i/improve!Stage 2:Back substitutionsfor j n downto 1 do t 0 for k j+1 to n do t t+Aj,k*xk xj(Aj,n+1-t)/Aj,j Efficiency:(n3)+(n2)=(n3),Searching Problem,Problem:Given a(multi)set S of keys and a search key K,find an occurrence of K in S,if anySearching must be considered in the context of:file size(internal vs.external)dynamics of data(static vs.dynamic)Dictionary operations(dynamic data):find(search)insertdelete,Taxonomy of Searching Algorithms,List searchingsequential searchbinary searchinterpolation searchTree searching binary search treebinary balanced trees:AVL trees,red-black treesmultiway balanced trees:2-3 trees,2-3-4 trees,B treesHashingopen hashing(separate chaining)closed hashing(open addressing),Binary Search Tree,Arrange keys in a binary tree with the binary search tree property:,K,K,K,Example:5,3,1,10,12,7,9,Dictionary Operations on Binary Search Trees,Searching straightforwardInsertion search for key,insert at leaf where search terminatedDeletion 3 cases:deleting key at a leafdeleting key at node with single childdeleting key at node with two children Efficiency depends of the trees height:log2 n h n-1,with height average(random files)be about 3log2 n Thus all three operations have worst case efficiency:(n)average case efficiency:(log n)Bonus:inorder traversal produces sorted list,Balanced Search Trees,Attractiveness of binary search tree is marred by the bad(linear)worst-case efficiency.Two ideas to overcome it are:to rebalance binary search tree when a new insertion makes the tree“too unbalanced”AVL trees red-black trees to allow more than one key per node of a search tree 2-3 trees 2-3-4 trees B-trees,Balanced trees:AVL trees,Definition An AVL tree is a binary search tree in which,for every node,the difference between the heights of its left and right subtrees,called the balance factor,is at most 1(with the height of an empty tree defined as-1),Tree(a)is an AVL tree;tree(b)is not an AVL tree,Rotations,If a key insertion violates the balance requirement at some node,the subtree rooted at that node is transformed via one of the four rotations.(The rotation is always performed for a subtree rooted at an“unbalanced”node closest to the new leaf.),Single R-rotation,Double LR-rotation,General case:Single R-rotation,General case:Double LR-rotation,AVL tree construction-an example,Construct an AVL tree for the list 5,6,8,3,2,4,7,AVL tree construction-an example(cont.),Analysis of AVL trees,h 1.4404 log2(n+2)-1.3277 average height:1.01 log2n+0.1 for large n(found empirically)Search and insertion are O(log n)Deletion is more complicated but is also O(log n)Disadvantages:frequent rotationscomplexityA similar idea:red-black trees(height of subtrees is allowed to differ by up to a factor of 2),Multiway Search Trees,Definition A multiway search tree is a search tree that allowsmore than one key in the same node of the tree.Definition A node of a search tree is called an n-node if it contains n-1 ordered keys(which divide the entire key range into n intervals pointed to by the nodes n links to its children):Note:Every node in a classical binary search tree is a 2-node,k1 k2 kn-1,k1,k1,k2),kn-1,2-3 Tree,Definition A 2-3 tree is a search tree that may have 2-nodes and 3-nodes height-balanced(all leaves are on the same level)A 2-3 tree is constructed by successive insertions of keys given,with a new key always inserted into a leaf of the tree.If the leaf is a 3-node,its split into two with the middle key promoted to the parent.,2-3 tree construction an example,Construct a 2-3 tree the list 9,5,8,3,2,4,7,Analysis of 2-3 trees,log3(n+1)-1 h log2(n+1)-1Search,insertion,and deletion are in(log n)The idea of 2-3 tree can be generalized by allowing more keys per node 2-3-4 trees B-trees,Heaps and Heapsort,Definition A heap is a binary tree with keys at its nodes(one key per node)such that:It is essentially complete,i.e.,all its levels are full except possibly the last level,where only some rightmost keys may be missingThe key at each node is keys at its children,Illustration of the heaps definition,a heap,not a heap,not a heap,Note:Heaps elements are ordered top down(along any path down from its root),but they are not ordered left to right,Some Important Properties of a Heap,Given n,there exists a unique binary tree with n nodes that is essentially complete,with h=log2 nThe root contains the largest keyThe subtree rooted at any node of a heap is also a heapA heap can be represented as an array,Heaps Array Representation,Store heaps elements in an array(whose elements indexed,for convenience,1 to n)in top-down left-to-right orderExample:Left child of node j is at 2jRight child of node j is at 2j+1Parent of node j is at j/2 Parental nodes are represented in the first n/2 locations,9,1,5,3,4,2,Step 0:Initialize the structure with keys in the order givenStep 1:Starting with the last(rightmost)parental node,fix the heap rooted at it,if it doesnt satisfy the heap condition:keep exchanging it with its largest child until the heap condition holdsStep 2:Repeat Step 1 for the preceding parental node,Heap Construction(bottom-up),Example of Heap Construction,Construct a heap for the list 2,9,7,6,5,8,Pseudopodia of bottom-up heap construction,Stage 1:Construct a heap for a given list of n keysStage 2:Repeat operation of root removal n-1 times:Exchange keys in the root and in the last(rightmost)leafDecrease heap size by 1If necessary,swap new root with larger child until the heap condition holds,Heapsort,Sort the list 2,9,7,6,5,8 by heapsortStage 1(heap construction)Stage 2(root/max removal)1 9 7 6 5 8 9 6 8 2 5 7 2 9 8 6 5 7 7 6 8 2 5|9 2 9 8 6 5 7 8 6 7 2 5|9 9 2 8 6 5 7 5 6 7 2|8 9 9 6 8 2 5 7 7 6 5 2|8 9 2 6 5|7 8 9 6 2 5|7 8 9 5 2|6 7 8 9 5 2|6 7 8 9 2|5 6 7 8 9,Example of Sorting by Heapsort,Stage 1:Build heap for a given list of n keysworst-case C(n)=Stage 2:Repeat operation of root removal n-1 times(fix heap)worst-case C(n)=Both worst-case and average-case efficiency:(nlogn)In-place:yesStability:no(e.g.,1 1),2(h-i)2i=2(n log2(n+1)(n),i=0,h-1,#nodes at level i,i=1,n-1,2log2 i(nlogn),Analysis of Heapsort,A priority queue is the ADT of a set of elements with numerical priorities with the following operations:find element with highest prioritydelete element with highest priorityinsert element with assigned priority(see below)Heap is a very efficient way for implementing priority queuesTwo ways to handle priority queue in which highest priority=smallest number,Priority Queue,Insertion of a New Element into a Heap,Insert the new element at last position in heap.Compare it with its parent and,if it violates heap condition,exchange themContinue comparing the new element with nodes up the tree until the heap condition is satisfiedExample:Insert key 10Efficiency:O(log n),Horners Rule For Polynomial Evaluation,Given a polynomial of degree np(x)=anxn+an-1xn-1+a1x+a0and a specific value of x,find the value of p at that point.Two brute-force algorithms:p 0 p a0;power 1for i n downto 0 do for i 1 to n do power 1 power power*x for j 1 to i do p p+ai*power power power*x return p p p+ai*powerreturn p,Horners Rule,Example:p(x)=2x4-x3+3x2+x-5=x(2x3-x2+3x+1)-5=x(x(2x2-x+3)+1)-5=x(x(x(2x-1)+3)+1)-5 Substitution into the last formula leads to a faster algorithm Same sequence of computations are obtained by simply arranging the coefficient in a table and proceeding as follows:coefficients2-1 3 1-5 x=3,Horners Rule pseudocode,Efficiency of Horners Rule:#multiplications=#additions=n Synthetic division of of p(x)by(x-x0)Example:Let p(x)=2x4-x3+3x2+x-5.Find p(x):(x-3),Computing an(revisited),Left-to-right binary exponentiation Initialize product accumulator by 1.Scan ns binary expansion from left to right and do the following:If the current binary digit is 0,square the accumulator(S);if the binary digit is 1,square the accumulator and multiply it by a(SM).Example:Compute a13.Here,n=13=11012 binary rep.of 13:1 1 0 1 SM SM S SM accumulator:1 12*a=a a2*a=a3(a3)2=a6(a6)2*a=a13(computed left-to-right)Efficiency:b M(n)2b where b=log2 n+1,Computing an(cont.),Right-to-left binary exponentiation Scan ns binary expansion from right to left and compute an as the product of terms a2 i corresponding to 1s in this expansion.Example Compute a13 by the right-to-left binary exponentiation.Here,n=13=11012.1 1 0 1 a8 a4 a2 a:a2 i terms a8*a4*a:product(computed right-to-left)Efficiency:same as that of left-to-right binary exponentiation,Problem Reduction,This variation of transform-and-conquer solves a problem by a transforming it into different problem for which an algorithm is already available.To be of practical value,the combined time of the transformation and solving the other problem should be smaller than solving the problem as given by another method.,Examples of Solving Problems by Reduction,computing lcm(m,n)via computing gcd(m,n)counting number of paths of length n in a graph by raising the graphs adjacency matrix to the n-th powertransforming a maximization problem to a minimization problem and vice versa(also,min-heap construction)linear programmingreduction to graph problems(e.g.,solving puzzles via state-space graphs),

    注意事项

    本文(算法设计与分析基础第三版PPTch.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开