数据结构 设计模式 手写代码
2022-03-19 10:20:55 3 举报
几个简单的算法和数据结构
作者其他创作
大纲/内容
重点:确保类只有一个实例 尤其是多线程情况下 四大特征: 构造器私有 以静态方法或者枚举返回实例 确保反序列化时不会重构对象readResolve()-----定义此方法 可以在反序列化的时候返回对象
设计模式
1.使用分治法 将一个串分为两个子·串 具体实现 从串中挑出一个元素作为基准 比基准大的放在右边 比基准小的放在左边 一样大的放在任意边递归操作
你知道的设计模式都有哪些
快速排序
怎么遍历一颗树
1.单例模式
静态代理 : 对象和代理实现同一接口 代理提供原对象类型的成员变量 代理方法实现接口方法时 不仅 原名对象调用原对象的方法 也可以做其他增强
1.单例模式 2.工厂模式 3.代理模式 装饰器模式 组合模式等
二分查找
1.必须先定义固定长度 2.当数组添加元素的时候可能造成数组下标越界 数组存储原素过少会造成内存浪费3.
冒泡排序
1.定义赋值low high 2.循环条件为(low<=high) (low + high) >>>23.执行过程逻辑
将创建对象的权力交給工厂不自己new 对象 只和工厂打交道 实现解耦简单工厂 :根据对应的参数 生产对应的产品工厂方法: 将工厂提取出一个接口 生产什么产品由子类决定抽像工厂:为一组相关或者相互依赖的产品提供结构
工厂模式
先序: 根左右 后续 左右根 中序 左根右 层序 每一层从左到右遍历 (采用递归实现遍历)
时间复杂度 空间复杂度
数组和链表结构的对比
比较相邻元素如果不符合顺序就交换 对每一对都做相同操作 每趟会确定一个元素的顺序 重复上述步骤确定所有元素顺序(除了第一个)
代理模式
1。要求有序过程 将中间值于关键词相比 如果相等查找成功 如果不等利用中间位置将表分为两子表 如果关键字大于中间值 则查右表 否则查左表
动态代理
收藏
0 条评论
下一页