Day22—设计模式、查找算法、排序算法
来源:互联网 发布:c语言百分号什么意思 编辑:程序博客网 时间:2024/05/22 13:20
今日内容:
1.设计模式
2.查找算法
3.排序算法
1.常见的设计模式(下载 JavaSE 中的 Constructor 文件夹,打开网页查看)(https://github.com/carolcoral/JavaLearn)
创建型模式 — 工厂方法模式、抽象工厂模式、单例模式(掌握,会写)
结构型模式 — 装饰器模式、代理模式(看懂)
行为型模式 — 模版方法模式、观察者模式
2.常见的查找算法(重点)
2.1 线性查找算法(顺序查找算法)
(1)算法流程
a.使用目标元素与样本数列中的第一个元素起依次进行比较
b.若目标元素与样本数列中的元素相等,这表示查找成功
c.若目标元素与样本数列中的所有元素偶比较完毕也没有相等的元素,这表示查找失败
2.2二分查找算法(折半查找算法)
(1)算法流程
a.假定样本数列的所有元素从小到大依次排列
b.使用目标元素与样本数列的中间元素比较大小,若相等则表示查找成功
c.若目标元素小于中间元素,则去中间元素的左边进行查找
d.若目标元素大于中间元素,则去中间元素的右边进行查找
e.直到使用目标元素与所有元素比较完毕时也没有相等的元素,则表示查找失败
3.常用的排序算法(重点)
3.1 冒泡排序算法(重中之重)
(1)算法流程
a.比较相邻位置的两个元素,若左边的元素大则交换两个元素的位置;
b.从开始的第一队一直到结尾的最后一对依次比较,进过这一轮,最后的元素将是这组元素的最大值;
c.重复步骤 b 对越来越少的元素进行比较,直到处理完毕所有元素为止(任意两个相邻位置的元素都无需交换位置为止);
3.2 插入排序算法
(1)算法流程
a.从第一个元素起,认定该元素已经有序;
b.取出下一个元素,让取出的元素与左边的有序数列从右向左依次比较;
c.若取出的元素小于左边的元素,则将左边的元素右移,也就是复制到下一个位置;
d.若取出的元素大于或等于左边的元素,则将取出的元素插入到左边元素的右边;
e.重复步骤 b,直到处理完毕所有元素为止;
3.3 选择排序算法
(1)算法流程
a.从第一个元素起取出该元素,并假定该元素是这组元素中的最小值,使用 min 记录下标;
b.使用 min 记录的最小值与后续元素依次进行比较;
c.若后续元素中找到比 min 记录的最小值还小的数据,则使用 min 记录该元素的下标;
d.直到 min 记录的最小值与后续所有元素比较完毕时,交换 min 记录的最小值和最开始假定的最小值,经过这一步最开始的元素将是该组元素中的最小值;
e.重复步骤 a,直到处理完毕所有元素为止;
3.4 快速排序算法
(1)算法流程
a.选择样本数列中的中间元素作为基准值,并单独保存;
b.分别使用左右两边的元素与基准值比较大小,将所有比基准值小的元素放在左边,将所有比基准值大或相等的元素放在右边,这个过程叫做分组;
c.直到左右两边元素的下标重合时,将基准值放到重合的位置;
d.分别对基准值两边的分组重复上述过程进行再次分组,使用递归的策略;
- Day22—设计模式、查找算法、排序算法
- 排序算法和设计模式
- 排序算法&查找算法
- 算法-排序查找算法
- 算法——排序/查找
- 排序算法和查找算法
- 排序算法/查找算法总结
- 排序算法和查找算法
- 排序算法和查找算法
- 排序算法和查找算法
- day_03_查找算法、排序算法
- 查找算法和排序算法
- 看过设计模式后写排序算法
- 排序_查找算法
- 排序查找算法源码
- 排序算法-二分查找
- 常见查找,排序算法
- 查找和排序算法
- Paython简史
- 数据结构第十一周项目(四)——利用遍历思想求解图问题
- [媒体]PCIe NVMe SSD准备“蚕食”企业级存储系统了
- opcache的使用
- maven使用mybatis-generator自动生成代码
- Day22—设计模式、查找算法、排序算法
- 每天学一点python----逻辑行、物理行、换行
- total commander最近修改标红
- 从写项目到部署linux服务器全过程-MyEclipse创建多模块Maven依赖项目
- spring boot的小例子
- linux定时任务crontab
- Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject
- StringBuffer
- WebView踩坑系列(一)