




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C Net架构师蜕变营 Eleven 朝夕教育 Net架构班VIP 数据结构与算法 Array ArrayList List Stack Queue结构解读冒泡 选择 插入排序算法顺序 自组织 二叉查找算法链表 手写单链表实现栈高级查找 高级排序 数据结构与算法 1大厂高薪工作面试必备内容方便阅读源码和理解设计思想写代码 封装框架的性能保障增加内功 持续竞争力 不变 锻炼逻辑思维能力 怎么学 理解写一遍思考总结源码解读C 数据结构算法 能写写 锻炼动手能力 不能写就解读 锻炼逻辑思维 数组 Array 连续的 节约空间 查找也快 增删慢 定长多维数组 矩阵数组 图 锯齿数组 动态数组 ArrayList 连续的 节约空间 查找也快 增删慢 变长Capacity TrimToSize超出长度时 是x2 开辟全新空间 copy数据ListCapacity TrimExcess Stack Stack FILO可以用链表实现 C 用的是数组Capacity TrimExcessStack实际上是对数组的一个封装 Queue Queue 当然也是数组Capacity TrimExcess尾巴进头部出 BCL源码 基类库BCL之前是 练习1 栈 队列 Stack进制转换回文检测语法检测器公式解释器顺序日志任务异步计算优先级队列 数据结构小结 学会适当且高效地使用数据结构是进步的开端先抽象数据 然后来思考问题解决方案 会更容易得到好方案 封装 封装 封装 算法Algorithm 算法 Algorithm 是指解题方案的准确而完整的描述 是一系列解决问题的清晰指令 算法代表着用系统的方法描述解决问题的策略机制 存储数据最普遍的两种操作就是排序和查找许多数据结构的主要设计目的就是为了使排序或查找更加简单 基础排序算法 冒泡排序 两两交换 直到找出最大值 摆在最后面2层循环选择排序 找出最小值 直接跟头部交换 2层循环插入排序 先放一个数据到位置0 再放第2个 需要比较前面的数据 决定放在左边还是右边 依次类推跟数据级别分配都有关选择排序是最好的 是冒泡的1 2插入是最慢的 基础查找算法 顺序查找 foreach最大值 foreach保存最大值最小值 foreach保存最小值完全无序查找是重复N次 自组织查找 查找顺便有序二八原则 自组织查找算法 冒泡式 每查1次 数据前移一个位置二八原则 就是多了个判断 在后80 才移动其实就是想办法把热门数据移到前面去 长期运行有效率 二叉查找 就是先排序 再查找 1到100元猜个数字 猜对就给他502537迭代模式递归模式递归的效率比循环低 但是很cool 练习2 基础算法 把三种基础排序改造成从大到小顺序查找 自组织查找 改造成从尾部开始查找二叉查找的集合里面 如果是倒序的 该如何改造 如果集合是无序的会发生什么情况 链表 单链接链表实现在内存上不连续可以从头遍历到尾巴不能索引找 查询慢一些增删快一些 双链表 LinkedList内置双链接链表其实链表就是一个类 属性指向其他实例 然后串起来就是的 循环链表 头尾连起来 链表实践 自定义简易链表完成StackFILO单链表即可 Node NodeListStack Push Pop Peek TotalNodeList 小练习3 链表 实现Queue 实现Stack点兵点将点到谁就是谁 50人谁是最后安全的0到49100人呢 1000人呢 应用较少 Hash存储 key valueHash 散列 哈希 把任意长度的输入 通过散列算法 变换成固定长度的输出 该输出就是散列值 哈希冲突 使用一个下标范围比较大的数组来存储元素 可以设计一个函数 哈希函数 使得每个元素的关键字都与一个函数值 即数组下标 相对应 于是用这个数组单元来存储这个元素 哈希函数的目标是尽量减少冲突 但实际应用中冲突是无法避免的 双重散列法 DoubleHashing Hashtable 线程安全 实现层支持对象装箱拆箱增删改查速度都快 空间换时间 相对数组和链接 字典Dictionary 泛型Key Value集合增删查改 都很快 有序的 数组存储Entry数据Whyhash 快速定位 SortDictionary 排序字典插入时找好位置 SortedList 排序的key value数组 没有hash插入时排序 集合 集合是特殊元素们的一种聚合 有两个最重要的属性1集合成员都是无序的集合的成员不会出现超过一次 去重交叉并补投票 避免一个ip多次无序可以做随机 HashSet实现 C 用的是数组 数组也可以用hashtable源码解读 树结构 树是由边连接的一系列节点 一种非线性的数据结构 可以把数据按照等级模式存储起来 根节点父节点子节点叶节点 二叉树 每个节点最多拥有不超过两个子节点的树定义为二叉树 完全二叉树 若二叉树中最多只有最下面两层结点的度小于2 并且最下面一层的结点 叶子结点 都依次排列在该层最左边的位置上 具有这样结构特点的树结构称为完全二叉树 二叉查找树 排序树 1若它的左子树不为空 则左子树上的所有结点的值均小于根结点的值2若它的右子树不为空 则右子树上的所有结点的值均大于根节点的值3二叉排序树的左右子树也都是二叉排序树 C 构建树 数据结构就是为了提升效率 降低思考难度组合模式 CustomTreeNode1对多 1对2 排序树 二叉查找树 遍历 中序遍历 Sequentialtraversal 从小到大先序遍历 PreTraversal 自身在前后序遍历 PostTraversal 自身再后 二叉查找树 查找 Min Max Find value 封装数据结构 就是为了操作的高效 小练习4 二叉树 随机生成10个GUID 找出其中的数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书中特定遗产继承权与财产分割协议示范
- 2025年火车焊工考试试题及答案
- 特岗教师计划对农村教育人力资本的影响
- 基于AHP法的金融审计效果评价体系构建
- 音乐产业音乐版权运营与音乐科技创新融合发展的市场竞争力提升策略研究
- 2025年六级数学月考试卷及答案
- DB65T 4410-2021 热泵干制红枣技术规程
- 医学影像技术专业试题及答案
- 中医学转专业试题及答案
- 复试专业英语试题及答案
- 临时用电安全教育培训课件
- GJB9001C-2017质量管理体系检查内容的内部审核检查表【含检查内容】
- 半导体数字集成电路测试技术概要
- 心包积液以及心包填塞
- 商业银行内部审计技术与方法
- 河道清淤整治工程施工组织设计方案
- 论信息技术对公共行政的影响分析研究行政管理专业
- 技术部薪资等级晋升制度76799
- 生物化学:第2章 核酸的结构与功能
- 湖南省住院病案首页
- 资产评估的公式整理版
评论
0/150
提交评论