- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Java数据结构和算法笔记
Java数据结构和算法笔记
篇一:Java数据结构和算法笔记
Java数据结构和算法
第0讲综述
参考教材:Java数据结构和算法(第二版),[美]Robertlafore 1.数据结构的特性
数据结构数组有序数组栈队列链表二叉树红-黑树2-3-4树哈希表堆图
优点
比无序的数组查找快提供后进先出方式的存取提供先进先出方式的存取插入快,删除快
查找、插入、删除都快;树总是平衡的查找、插入、删除都快;树总是平衡的;类似的树对磁盘存储有用
如果关键字已知,则存储极快;插入快插入、删除快;对大数据项的存取很快对现实世界建模
缺点
删除和插入慢,大小固定存取其他项很慢存取其他项很慢查找慢算法复杂算法复杂
删除慢,如果不知道关键字则存储很慢,对存储空间使用不充分对其他数据项存取慢有些算法慢且复杂
插入快;如果知道下标,可以非常快地存取查找慢,删除慢,大小固定
查找、插入、删除都快(如果树保持平衡)删除算法复杂
2.经典算法总结
查找算法:线性查找和二分查找排序算法:用表展示
第一讲数组
1.Java中数组的基础知识
1)创建数组
在Java中把数组当作对象来对待,因此在创建数组时必须使用new操作符:
一旦创建数组,数组大小便不可改变。
2)访问数组数据项
数组数据项通过方括号中的下标来访问,其中第一个数据项的下标是0:
3)数组的初始化
当创建数组之后,除非将特定的值赋给数组的数据项,否则它们一直是特殊的null对象。
2.面向对象编程方式
1)使用自定义的类封装数组
2)添加类方法实现数据操作
测试MyArray类方法:
3.有序数组
1)有序数组简介以及其优点
有序数组是一种数组元素按一定的顺序排列的数组,从而方便使用二分查找来查找数组中特定的元素。有序数组提高了查询的效率,但并没有提高删除和插入元素的效率。
2)构建有序数组
将2.1中自定义的类封装数组MyArray的方法改为如下:
4.查找算法
1)线性查找
在查找过程中,将要查找的数一个一个地与数组中的数据项比较,
直到找到要找的数。在
2.1中自定义的类封装数组
MyArray的
queryByValue方法,使用的就是线性查找。
2)二分查找
二分查找(又称折半查找),即不断将有序数组进行对半分割,每次拿中间位置的数和要查找的数进行比较:如果要查找的数中间数,则表明要查的数在数组的前半段;如果要查的数中间数,则表明该数在数组的后半段;如果要查的数=中间数,则返回中间数。
测试该二分查找方法:
篇二:数据结构面试中常见算法小结
一、二叉树遍历思想:
1、非递归前序遍历
List作栈,top为栈针
While循环
当前点非空,输出
右子非空,入栈
左子非空,入栈
栈非空,栈顶为当前点,出栈;否则break
2、非递归中序遍历
List作栈,top为栈针
While循环(但前点非空或栈非空)
当前点非空,入栈,左子为当前点;
否则,栈顶为当前点,出栈;输出,右子为当前点
3、非递归后序遍历
List1作数据栈,list2作标识栈,top为数据栈针,tag为标识作判断用
Do循环
While循环(当前点非空)
入数据栈,标识栈对应设1;左子为当前点。(本内循环相当于把所有左子入栈)数据栈顶为当前点,标识栈顶为tag且出栈
Tag为1,数字2进标识栈,右子为当前点
否则为2,数据栈出栈顶,输出,当前点为null;
While(当前点非空或数据栈非空)---与do配套
二叉树的各遍历算法:
packagecom.job.basic;
importjava.util.*;
publicclassBinaryTree{
//递归前序遍历
publicvoidrPreOrder(Noderoot){
if(root!=null)System.out.print(root.data);
if(root.left!=null)rPreOrder(root.left);
if(root.right!=null)rPreOrder(root.right);
}
//前序遍历
publicvoidpreOrder(Noderoot){
ArrayListstack=n
您可能关注的文档
- (精选)黄帝内经期末考试知识整理.docx
- (完整word版)儿科护理学重点整理(DOC).docx
- (完整word版)中外园林史试题库(郭风平、方建斌主编).docx
- 《成本会计》期末试卷及答案.docx
- 《成人护理》习题和复习资料.docx
- 《电子商务概论》试卷及答案.docx
- 《国际贸易实务》 考试模拟试题及答案.docx
- 《建筑设计原理》(复习题2013.1).docx
- 《内科护理》期末测试题及答案.docx
- 《文学批评》练习题库及答案.docx
- Module5单词默写课件七年级英语上册(完整版)3.pptx
- Unit4Whereismycar?PartB(课件)人教PEP版英语三年级下册.pptx
- 江苏省部分市高一上学期期末考试英语试题汇编完形填空.docx
- Unit1HowcanwebeegoodlearnersSectionB2a2e课件人教版英语九年级全册(1).pptx
- 中国历史上的政治思想和社会伦理.pptx
- 六年级作文集_2(完整版).pptx
- Unit3BacktothePastIntegratedskills课件高中英语译林版(2020)选择性.pptx
- Module3Unit2OnMondayI’llgoswimming.(课件)英语四年级下册(精).pptx
- 2024年安徽高考化学新题精选仿真模拟卷6.docx
- Unit3It'sapineapple.Lesson16(课件)人教精通版英语四年级上册.pptx
最近下载
- 第十三章 电磁感应与电磁波初步 学情分析 内容与价值分析 单元小结--高二上学期物理人教版(2019)必修第三册.docx
- 江苏省宿迁市2024届高三下学期三模试题 地理 Word版含答案.docx
- 湘科版科学五年级上册全册教案(含反思) .pdf
- 冀少版七年级上册生物全册新质教学课件(配2024年秋改版教材).pptx
- 形状记忆高分子_智能高分子.ppt VIP
- 2024年新人教版八年级上册物理教学课件 5.5 跨学科实践:制作望远镜.pptx
- DA98B用户手册_V2.01.pdf
- 叶红玉《报关实务(第4版)》3(项目三进出口税费核算).ppt VIP
- 部编版语文一年级上册第一二单元核心素养教案(表格版).docx
- 护理质量控制与改进.docx
文档评论(0)