儿转数据结构课件_第1页
儿转数据结构课件_第2页
儿转数据结构课件_第3页
儿转数据结构课件_第4页
儿转数据结构课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数组基把数据码成一排进行存索0123456数组基把数据码成一排进行存索01234567二次二次封装属于我们自己的数组基把数据码成一排进行存索01234567数组基把数据码成一排进行存索01234567索引可以有语意也可以没有语数组基数数组基数组最大的优点:快速查询。数组最好应用于“索引有语意”的情况但并非所有有语意的索引都适用于数身份证号数组基但数组基但并非所有有语意的索引都适用于数身份证号数组也可以处理“索引没有语意”的情况我们在这一章,主要处理“索引没有语意”的情况数组的使用数组基我们在这一章,主要处理“索引没有数组基我们在这一章,主要处理“索引没有语意”的情况数组的使用01234567索引没有语意,如何表示没有元素如何添加元素?如何删除元素制作属制作属于我们自己的数索引没有语意,如何表示没有元素如何添加元素?如何删除元素基于java的数组,二次封装属于我们自己的数组制作属于我们自己的数class制作属于我们自己的数class增删改查实践实践:二测封装属于我们自己的向数向数组添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元向数组中添加元向数组末添加向数组中添加元向数组末添加元实践实践:向数组末尾添加向数组中添加元向指定位置添加元01234向数组中添加元向指定位置添加元01234567把77插入到索引为1的位向数组中添加元向指定位置添加元01234向数组中添加元向指定位置添加元01234567把77插入到索引为1的位向数组中添加元向指定位置添加元01234向数组中添加元向指定位置添加元01234567把77插入到索引为1的位向数组中添加元向指定位置添加元01234向数组中添加元向指定位置添加元01234567把77插入到索引为1的位向数组中添加元向指定位置添加元012向数组中添加元向指定位置添加元01234567把77插入到索引为1的位向数组中添加元向指定位置添加元012向数组中添加元向指定位置添加元01234567把77插入到索引为1的位实践实践:向数组任意位置添加在数在数组中查询元素和修改实践实践:在数组中查询元素和修改数组数组中的包含,搜索和删除实践实践:数组中的包含和从数组中删除元删除指定位置元0123从数组中删除元删除指定位置元01234567删除索引为1的元从数组中删除元删除指定位置元0123从数组中删除元删除指定位置元01234567删除索引为1的元从数组中删除元删除指定位置元0123从数组中删除元删除指定位置元01234567删除索引为1的元从数组中删除元删除指定位置元0123从数组中删除元删除指定位置元01234567删除索引为1的元从数组中删除元删除指定位置元0123从数组中删除元删除指定位置元01234567删除索引为1的元实践实践:从数组中删除使用使用泛使用泛使用泛让我们的数据结构可以放置“任何”数据类不可以是基本数据类型,只能是类对boolean,byte,char,short,int,long,float,每个基本数据类型都有对应的包装Boolean,Byte,Char,Short,Int,Long,Float,实践实践:使用泛动态动态数动态数01234动态数01234动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数0123401234567动态数01234567动态数01234567动态数01234567动态数01234567实践实践:动态数简单简单的时间复杂度简单的时间复杂度O(1),O(n),O(lgn),简单的时间复杂度O(1),O(n),O(lgn),O(nlogn),大O描述的是算法的运行时间和输入数据之间的关=n是nums中的元素个算法和n呈线性关}简单的时间复杂度=n是简单的时间复杂度=n是nums中的元素个算法和n呈线性关}为什么要用大O,叫做忽略常数。实际时间Tc1*n+简单的时间复杂度为什么简单的时间复杂度为什么要用大O,叫做忽略常数。实际时间Tc1*n+T=2*n+T=2000*n+渐进时间复杂描述n趋近于无穷的情T=1*n*n+T=2*n*n+300n+分析动态数组的时间复添加操分析动态数组的时间复添加操最坏情add(index,O(n/2)=严格计算需要一些概率论知分析动态数组的时间复删除操分析动态数组的时间复删除操remove(index,O(n/2)=分析动态数组分析动态数组的时间复修改操set(index,分析动态数组的时分析动态数组的时间复查找操分析动态数组的分析动态数组的时间复如果只对最后一个元素操依然是O(n)?因为知索引O(1);未知索引知索引O(1);未知索引均摊均摊复杂度分析和防止复杂度震resize的复杂度分添加操resize的复杂度分添加操最坏情add(index,O(n/2)=resize的复杂度分添加操resize的复杂度分添加操最坏情add(index,O(n/2)=resize的复杂度分假设当前capacity=resize的复杂度分假设当前capacity=8,并且每一次添加操作都使用111111118+9次addLast操作,触发resize,总共进行了17次基本操resize的复杂度resize的复杂度分9次addLast操作,触发resize,总共进行了17次基本操平均,每次addLast操作,进行2次基本操假设capacity=n,n+1次addLast,触发resize,总共进行2n+1次基本操平均,每次addLast操作,进行2次基本操resize的复杂度resize的复杂度分平均,每次addLast操作,进行2次基本操这样均摊计算,时间复杂度是O(1)的在这个例子里,这样均摊计算,比计算最坏情况有意义amortizedtimeamortizedtimeaddLast的均摊复杂度为同理,我们看removeLast操作,均摊复杂度也为复杂度震但是,当复杂度震但是,当我们同时看addLast和removeLast操作capacity=复杂度震但是,当我们同时复杂度震但是,当我们同时看addLast和removeLast操作capacity=复杂度震出现问复杂度震出现问题的原因

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论