1.kruskal
设图共有k个顶点
当k=2时,图G只有一条边,显然最短边为此边,图G的最小生成树为其自身。
设k=n时,成立。
对于有n+1个顶点的图G,接最短边e后,剩余n个顶点待连接,由假设,成立,那么其最小生成树为T’。
反证法:若T’不是G的最小生成树,则应存在含e的最小生成树T*,则对T短接e,G’生成树T-{e},则此时有
W(T*-{e})=W(T*)-W{e}<W(T)-W{e}=W(T’)
与T’是G的最小生成树相矛盾,故T*不存在,T就是G的最小生成树
2.Prim
反证法
假设权值最小的边不在最小生成树T中,此时将权值最小的边加入T中,必然构成回路,去除回路中权值最大的边,新的生成树T’权值比T的权值小,故最小生成边必然在最小生成树中。
3.由栈的特性,不存在i<j<k,使得pj<pk<pi
反证法
假设存在i<j<k,使得pj<pk<pi,因为原序列1,2,3…n是单调递增序列,
又pi>pk,pi>pj,故pk pj必然在1,2,3…pi-1的序列中。
同理可得,pk>pj,pj必在1…pk-1的序列中,综上,分部序列应该为:1,…pj…pk…pi…n
那么出栈的时候要求i<j<k,i最小,pi最先出栈,1,…pj…pk…pi都应先入栈,pi出栈后,pk必比pj先出栈,即出栈顺序应为:pi pk pj 根据序列的单调性,下标序列应为i<k<j,与假设矛盾,故原命题得证。
4.Dijkstra
5.Floyd
6.Huffman最优性
7.前 后序 层次+中序分别确定唯一二叉树