




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1编程、递归的概念与实现。例子:ppt-----递归例1求例 求数组元素的平均复习例题----例4统计二叉树中的叶结点个数 和 factorialfunction (base)// n>1recursivecomponent)//f(5)=5*f(4)=5*4f(staticlongfactorial(int if(n<=returnelsereturnn*factorial(n-1}例2publicstaticintfindMax(int[]a,intif(n==1){returna}returntemp>a[n-1]?temp:a[n-}}intmax(inta[],int{if(n==1)returna[0];intm=max(a,n-1);if(m>a[n-1]return}
returna[n-intGetMaxInt(ListNodef{if(f.link==NULL)returnf.data; inti=GetMaxInt(f.link);if(i>f.data)returni;elsereturnf.data;}}elsereturnfdataGetMaxIntflinkfdataGetMaxInt(f.link例3.floataverage(inta[],int{if(n==returna[0];}如果用链floatAverage(ListNodef,intn if(f.link==NULL)returnelsereturn(Average(f.link,n-1)*(n-1)+f.data)/}intleafNum(BinTreeNode<Type>*root{if(root==NULL)return0if(root->leafchild==NULL&&root->rightchild==NULL)return1;elsereturnleafNum(root->leftchild)+leafNum(root->rightchild)}例5.voidSwapchild(BinTreeNode*p{if(p==NULL)return;BinTreeNode*temp=p->left;p->left=p->right;p->right=temp;Swapchild(p->left);Swapchild(p->right);} 算法分 大O、Ω和θ符号分析某个语句的执行次数(频度分析某个程序段执行的时间复杂度(用大O表示,要求写出推导过程 对排序算法与查找算法的分例1----for(inti1;in;for(intj=1;j<=n; c[i][j]=for(intk=1;k<=n;c[i][j]= }次数为 x=0;y=0;for(inti=1;i<=n;i++)for(intj=1;j<=i;j++)for(intk=1;k<=j;k++)x=x+y; 例3.intx91;inty if(x>100){x-=10;y--;else} 逻辑-----(e1e2
例
例1.逆转链表(假设不带表头结点publicvoidinverse(ListNodef{if(f==NULL)ListNodep=f.link;pr=NULL;while(p!=NULL) f.link=pr;pr=f;f=pp=p.link}f.link=pr}例 设有如下结构的循环链表和可利用空间data…an-……请在常数时间内实现将LListNodep=L.link;L.link=Avail;Avail=定义-----栈的定义,队列的定机内实 数单链
(循环队列应 递归函数的实PPT:第4章中用非递归实现中序,后序遍历(在第4章中讲 中缀到后缀(a+b)*((c-d)/2*e)-----→ab+cd-例2.队列---情况一:front=rear- 情况二:特殊矩阵的压Arraysand1.One-dimensional1D-arrayisalimitedsequencecomposedofn(n0)elementswhichareofthesamedatatype.For
Size-Two-dimensionalarraysarecomposedofnrowsandmcolumns. a02……a0m- a12……a1m-
a22……a2m-an-10an-11an-12…..an-1m-Therearethreewaystoimplementa2D…a0m-…a0m-an-1m-a00a01a02……a0m-1a10a11a12……a1m-1a20a21a22……a2m-1
Rowmajor n-
n-
n-
m-Location row-majorordercolumn-majororderAn3D-inta[m1][m2][m3]LocationmapAsquarematrixhasthesa mberofrowsandcolumns.Somespecialformsofsquarematrixthatarisefrequentlyare:Diagonal.M(i,j)=0forLowertriangular.M(i,j)=0forUppertriangular.M(i,j)=0forFor2000210020000100305270310000600904270 (b)Tridiagonal ©LowerTriangular4 0 (d)Upper Lowera31a32an1an2Locationmap inrow-majororder:Uppera11a12………a1nLocation inrow-majora11a21a22a32a33an,n-1Locationmap inrow-majororder:Anm*nmatrixissaidtobesparseif“many”ofitselementsarenumberofzeroelements>>numberofnon-zeroAnexampleofsparse000000200060070000900045000Array Thenonzeroentriesofansparsematrixmayarrayinrowmajororder.Thestructureofeachelement
bemappedintoaForexample
94244359424435000200060070000900045000012MaxTerms-3.Linked0000000000000000-00000000四 TTT35TTT354FTTTF02F10TTF2TF2-1TT习题设有一个n*n的对称矩阵A,如下图(a)所示。为了节约,可以只A的压缩方式。试问:?a00a01…a0n-a10a11…a1n-an- an-11…an-1n-
a00a01…a0n-a11…a1n-an-1n-
an-10an-11…an-1n-11+2+3+…+n=loc(A[i,j])=loc(B[0])+(n+n-1+….+n-i+2+j-it=½*(2*n-i+1)*i+j- t=½*(2*n-j+1)*j+i- loc(A[i,j]=loc(B[0])+(1+2+3+….+i-1+j-
t=½*i*(i+1)+jt=½*j*(j+1)+
t=½*i*(i-1)+j-1对角线元素的地址:t01111011011110111100110008680770∞ 876 876
10∞ 二叉树的定义、性满二叉树与完全二叉树的机 数组表示(完全二叉树)、左---右拉链表示、递先序、中序、后序遍
非递例 第4章中用非递归实现中序,后序遍Inorder,Postordernon-recursiveInordernon-recursiveAABCDEFGHIvoidInOrder(BinaryNode<T>*{if(t){InOrder(t→Left);}}voidInorder(BinaryNode<T>*{Stack<BinaryNode<T>*>s(10);BinaryNode<T>*p=t;for(;;{1){ p=p->Left;2)if(!s.IsEmpty({p=s.pop(cout<<p->element;p=p->Right;}else}}inorder:A *6应树的机内表广义表表示、双亲表示、 ---右兄弟表树 方式:三广义表表双亲表示 —右兄弟表示Takeatreeasabinary Tdata;classTree:TreeNode*root, 二叉树的转Forest Binary
BinaryABCDEJABCDEJ KABCDABCDEFHIJKAF Binary ABFCGHABFCGHDI树的遍历:深度优先遍历,广度优先遍深度优先遍先序次序遍历(先序树的根 按先序遍历根的第一棵子树,第二棵子树……后序次序遍历(后序A先根:ABEFCGKLDHIJM 对应的二叉树的先序
后根:EFBKLGCHIMJDA对应的二叉树的中序广度优先遍A 分 森林的遍深度优先遍F的第一棵树的按中根遍历第一棵树的子树森F的第一F的第一
二叉树的先二叉树的中二叉树的后K J中根:EFBAIJHKKAKB 广度优先遍历(层次遍历 ThreadTreeleftThread andrightThreadThreadTree
ThreadAABCDEFGHJThread
Inorder:ABCBCD^ED^E^G ^GleftThread=rightThread=
leftchild leftchild指向前驱(某线性序列 rightchildleftright树扩充的二叉、三叉、….、t叉15,3,14,2,6,9,16, 构造扩充的三叉等价类问PPT第8二叉搜索树的概带索引的二叉搜索树的概 平衡的二叉搜索B-
主要操查找 、删
AnindexedbinarysearchtreeisderivedfromanordinarybinarysearchtreebyaddingthefieldleftSizetoeachtreenode.ValueinLeftsizefield=numberoftheelementsinthenode’sleftsubtree+1 2241^1^1^^1^^1^^publicComparablefindK(BinaryNoderoot,int{if(root==null)returnnull;//空if(k<root.leftSize在左子树findK(root.left,elseif(k>root.leftSizefindK(root.right,k-root.leftSize);//elsereturn } DefinitionofanAVLisabinarysearchEverynode|hL-hR|<=1wherehLandhRaretheheightsofsubtree)andTR(rightsubtree),respectively.
--50 14-680HeightofanthelongestpathfromtheroottoeachleafBalancefactorbf(x)ofanodexheightofrightsubtreeofx–heightofleftsubtreeofxTheheightofanAVLtreewithnelementsisO(log2n),soann-elementAVLsearchtreecanbesearchedinO(log2n)time.左外侧,右外 左内侧,右内 7个关键码发生四种转 A,Z,C,W,D,X,AAZC W右双AAZC W 右 左CAWDZC左CAWDZC左单旋WAWCDZADZXX右WCWCZADXY左左双旋WCYADXZW 假设被删除结点为W,它的中序后继为X,则用X代替W,并删除X.所不同的是:删除X后,以X为根的子树高度减1,这一高度 情况≦O(log2n)≦(3/2)log2(n+1因结点个数最少,左子树高h-
}h-
只能是h-为h-2,h-1,也一定是结点数最少的h= h=
h h=
h=T T
n=
n=
n=
n=
T n= B-Treesoforder Definition:AB-treeofordermisanm-waysearchtree.IftheB-treeisnotempty,thecorrespondingextendedtreesatisfiesthefollowingproperties:theroothasatleasttwoallinternalnodesotherthantheroothaveatleastm/2childrenallexternalnodesareatthesame20304050608284862423aB-treeoforderB树的:(注意分支数的上界m)后,把该结点分为两个结点,并把中间的关键码上提到父亲结点,可能引起再一次,依次能Insert101024828486203040506010102 48284862030405060不能Insert303050358282删除:(注意分支数的下界m/2)发生在外部结点的上一层( 情况一样1)能删则不能删(关键码要删除,但分支数也减少能借则借,但要作关键码的适当调整Example:delete
AB-TREEoforder283283353307313331367379283283347307313353367Example:aB-Treeoforder7,delete283283353367379419431Replaceitwiththesmallestkeyintherightsubtreeorthelargestkeyintheleftsubtree30305035AB-TREEoforderDelete80,thenreplaceitwith82or70,delete82or70at分别delete50,40inthefollowing3阶B-树60解 的方开地址法:线性探查链地址HashsolveaOpenlinearIfhash(key)=dandthebucketisalready occupiedthenwewillexaminesuccessivebucketsd+1,d+2,……m-1,0,1,2,……d-1,inthesolveakeys:Burke,Ekers,Broad,Blum,Attlee,Alton,hash(key)=ord(x)–x为取key第一个字母在字母表中的位置。例如hash(Attlee)=H(Burke)=1,H(Ekers)=4,H(Broad)=1,H(Blum)=1,H(Attlee)=0,H(Hecht)=7,H(Alton)=0,H(Ederly)=4,设散列表 m=26(0~25分析比较次搜索成功的平均搜索1/8(1+1+2+3+1+1+6+3)=*搜索不成功的平均搜索长1/26(9+8+7+6+5+4+3+2+1+1+1+…….+1)(9+8+7+6+5+4+3+2+18)=solveaQuadraticIfhash(k)=dandthebucketisalreadyoccupiedthenwewillexaminesuccessivebucketsd+1,d+22,d+33……,inthearrayexample(89,18,49,58,69hash(k)=k% 58 58solveaDoubleIfhash1(k)=dandthebucketisalreadyoccupiedthenwewillcountinghash2(k)=c,examinesuccessivebucketsd+c,d+2c,d+3c……,inthearrayhash1(k)=k%hash2(k)=R–(k%R);其中RTableSize的质数(89,18,49,58,69)012012345 89
solveaSeparate00 11234457999
0,1,4,9,16,25,36,49,64,Hash(x)=x%
ChapterH(key)=key%13。用线性开地址法解决 关键码序列12,23,45,57,20,03,78,31,15,36:1) 综合应用题(10分
将关键字序列(7,8,30,11,18,9,14)散列 到散列表中,散列表的 间是一个下标从0开始的一个一维数组中,散列函数为:H(key)=(key*3)MOD 问题请画出所构造的散列表分别计算等概率情况下,查找成功和查找不成功的平均查找长度 所谓查找不成功的平均查找长度是指:在表中所有可能散列到的位置 解答由装载因子0.7,数据总数7个,得 空间长度为10,所H(hey)=(key*3)MOD (7,8,30,11,18,9,140123401234 7897 2).查找成功的ASL=1+1+1+1+1+2+1)/7查找不成功的ASL=(7+6+5+4+3+2+1+2+1+1)/10= 所谓查找不成功的平均查找长度是指:在表中所有可能散列到的位置 优先队列的概优先队列的实用堆来实 堆的定Apriorityqueueisacollectionofzeroormoreelements.Eachelementhasapriorityorvalue.findaninsertanewdeleteanAmaxheap(minisAcompletebinaryThevalueineachnodeisgreater(less)thanorequaltothoseinitschildren(ifany).ExampleofamaxheapExampleofaminheap1){100,86,48,73,35,39,42,57,66,212){12,70,33,65,24,56,48,92,86,333){103,97,56,38,66,23,42,12,30,52,06,204){05,56,20,23,40,38,29,61,35,76,28,100222Initializeanonemptymax有两种方法建堆将数据依次放入一棵完全二叉树然后由下而上调如下例.Example:[1]
i=[n/2],[n/2]-1,…, [8]
10
Turnintomaxheapfromthesesubtreeroots CreateHeaptimeKK 总交换次数:2i(k-i)j2k-jj(2k2- =2kj2-j2k22lognheapinitializeamaxheapwiththenelementstobe eachtimewedeleteoneelement,thenadjusttheheap Timecomplexityisheap例子Example设待排序的关键码序列为12,2,1630,28,1016*20,6,18排序(直 排序,二分 排序 排序交换排序(起泡排序,快速排序选择排序(直接选择排序,堆排序归并排基数排内排序:对内存中的n个对象进如果待排序的对象序用某种方法排序后,这些对象的相对次序不变的,则是稳定的,否例
稳定排序(直 排序,二分 排序, 排序 排序直 排例 …n个对象已有移动次 2)n个对象逆 排序(BinaryInsertSort)
20算法分比较次数:v0, 设 第i个对象时,需要经过次关键码比折半查找所需的关键码
20个121个 22个 23个=20+21+22+…+2k-+21+22+…+2k-+2k-2+2k-+2k-
2k-1个kk
1排
7273712394160568 10160523727371 05161023716872730510 68717273平均比较次数与移动次数大约n1.3左右2)去掉已定位的的元素,重复1,直至趟无交换
i
j-
有序:n-1次比较,移动次数为逆序:(n-1)+(n-2)+…+1=n(n-(比较次数3i=(3/2)n(n-(移动次数 键码把所有该关键码的对象分划在 K1K2
]]
最理想的情设n=2k,一共做了K2n+22(n/22+2T(n/23))=3n+23T(n/23)可以证明Quicksort的平均计算时间也是O(nlog2n最小(最大)的记录,然后与第二个记录(0120123452149稳定 :不稳定的 例子 例子{21254925*16i=(n-1)/25/2=2、1、0进行5归并排序(merge
k
vectorn个长为1的对象两两合并,得n/2个长为2的文n/2 得n/4个长为4的文.2个长为n/2的对象两两合并,得1个长为nn个 例子:[21][25][49][25*][93][62][72][08][37][16][54] 49][62 72][1637][54] 6272 3754] 7293][16 54] 7293][16 495462 算法主程序(多趟)一趟 多次
算法分析:合并趟数log2n,每趟比较n次,所以为链式基数排序(RadixSort) 收集 0123456789收集 0123456789收集算法分
O(radix)O(n)O(
指 桶指稳定voidsort(float[]a,intn inti=0,j=n-1;while(i!=j) while(a[j]>=0.0&&i<j)j--;while(a[i]<0&&i<j)i++;floattemp=a[i];a[i]=a[j];a[j]=temp;j--;i++;}}下列排序算法中,时间复杂度为O(nlog2n)A.堆排C.快速排
B.起泡排 排无向图图的若干算 最小代价生成 Prime算Kuscal算最短路 Dijkstra算Floyed算活动网 AOV——拓扑排AOE——关键路例1,例RepresentationofgraphsandAdjacencyMatrixthentheadjacencymatrixofgraph1if<i,j>,<j,i>Eor0RepresentationofgraphsandFor01110111101111001100 Adjacencymatrixofgraphisasymmetric A(i,j)=A(j,i)=di(degreeofvertex 87 87
6∞0 6∞012
10Representationofgraphsand0100101001010
A(i,j)=d A(j,i)=d
RepresentationofgraphsandRepresentationofnetworks,replace1withweights,otherswith∞
W(i,j)ifi!=jand<i,j>,<j,i>E RepresentationofgraphsandForexample:除了邻接矩阵外,还要顶点信息表8 1
428∞ 428∞ Representationofgraphsandreducethestoragerequirementifthenumberofedgesinthegraphissmall.
dest03032434Representation
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 视频监控技术支持与服务合同模板
- 北京房产交易合同书
- 专升本文化课课件
- 普法宣讲【模板四】新员工入职培训
- 山东力明科技职业学院《健身运动的理论与方法》2023-2024学年第二学期期末试卷
- 盐城工业职业技术学院《中国文学史(三)》2023-2024学年第二学期期末试卷
- 凯里学院《文化与翻译(1)》2023-2024学年第一学期期末试卷
- 江苏省盐城市重点小学2024-2025学年五年级数学第二学期期末考试模拟试题含答案
- 朔州陶瓷职业技术学院《Web页面设计核心Ajax》2023-2024学年第二学期期末试卷
- 南京市建邺区重点名校2025届初三第五次模拟化学试题试卷含解析
- 古诗词诵读《书愤》公开课一等奖创新教学设计统编版高中语文选择性必修下册
- 食堂从业人员绩效管理考核专项方案
- 幼儿园游戏活动评价
- (正式版)SHT 3075-2024 石油化工钢制压力容器材料选用规范
- 机器人发展史课件完整版
- 《城市市政管网运行安全风险评估规程》
- 2024年中国诗词大会知识竞赛模拟题库及答案(120题)
- 新车入户代办委托书
- 可乐罐罐身主要成分的探究
- 麻醉复苏室护理进修汇报
- 医疗用毒性药品培训课件
评论
0/150
提交评论