课堂实践ASL博客
实践博客
二分法查找元素
- 1.首先定义三个位置min,mid,max
- 2.每次从所有元素所处位置的中间开始查找(所有元素必须以由小及大顺序排列完毕)
- 3.当中间元素大于所查找元素时,从中间元素(mid)左半区进行查找,此时max元素由最大值变为mid左侧紧邻的那个元素,min元素不变。
- 4.当中间元素小于所查找元素时,从中间元素(mid)右半区进行查找,此时max位置不变,min元素由最小元素变为mid元素的紧邻的右侧元素,max元素不变
- 5.当所查元素与mid元素相等时,查找结束。
- 6.当未查找到时,重复3、4步骤,直至查找到所需元素。
ASL分析
- ASL,Average Search Length,是查找算法的查找成功时的平均查找长度的缩写,是为确定记录在查找表中的位置,需和给定值进行比较的关键字个数的期望值。
- 二分法的ASL
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|
| 05 | 13 | 19 | 21 | 37 | 56 | 64 | 75 | 80 | 88 | 92 |
| 3 | 4 | 2 | 3 | 4 | 1 | 3 | 4 | 2 | 3 | 4 |
- 第一行为索引,第二行为元素,第三行为查找到该元素所需要的次数。
- 所以该元素集合的ASL=(1+2 * 2 + 3 * 4 + 4 * 4)/11=3
时间算法复杂度分析
- 二分法每次可以排除一半不符合要求的元素
- 对于n个元素
- 1.第一次剩下n/2
- 2.第二次剩下n/4
- 3.n次剩下n/(2^m)
- 所以,时间复杂度为log₂(n)
- 补充,对于第一个,第二个数即05,13元素,他们的搜寻次数为3和4.这取决于其具体的代码实现,不同的比较顺序可以带来不同的搜寻次数,例如,先从远离最后一次中间元素开始,那么05为3次,从靠近最后一次中间元素开始,05就会变为4次。
课堂实践ASL博客的更多相关文章
- 20155308《信息安全系统设计基础 嵌入式C语言课堂考试补博客
20155308<信息安全系统设计基础 嵌入式C语言课堂考试补博客 知识点 置位 ?bits = bits | (1 << 7) ; /* sets bit 7 */ bits |= ...
- java课堂动手动脑博客
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 要求将设计思路.程序流程图.源程序代码.结果截图.编程总结等发表到博客园. (截止时间2015 ...
- VMware workstation运维实践系列博客导航
第一章:VMware workstation虚拟化1.1 VMware workstation计算网络存储介绍1.2 VMware workstation其他功能特性介绍1.3 VMware work ...
- 20172314 蓝墨云课堂实践ASL
由于去跳啦啦操没有上课... 介绍 折半查找,又称作二分查找.这个查找的算法的特点,就是,要求数据要是有序的. 1 ,存储结构一定是顺序存储 2 ,关键字大小必须有序排列 然后,利用这组有序的数据之间 ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 自我介绍&软工实践博客点评
想想既然写了点评博客,那就顺便向同学们介绍下自己吧. 我是16届计科实验班的,水了两件小黄衫,于是就来当助教了_(:_」∠)_ 实话说身为同届生来当助教,我心里还是有点虚的,而且我还是计科的..感觉软 ...
- 【2017集美大学1412软工实践_助教博客】团队作业10——项目复审与事后分析(Beta版本)
写在前面的话 转眼轰轰烈烈本学期的软工实践就结束了,这个过程中想必在熬夜敲代码,激烈讨论中留下诸多回忆的同时,也收获了不少.恭喜所有团队完成了本阶段冲刺,此外,由于大家的贡献分给的都很平均,将个人贡献 ...
- 20155205 《Java程序设计》0510课上实践博客
20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...
- 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)
2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...
随机推荐
- Apache24 + php5.6.31 +Sql server R2 环境搭建①
win8(7)x64系统下 :PHP5.5.15 + Apache2.4.10 + SQL server 2008 R2 的配置方法分享给大家,32位的同理,不过下载的软件需要也是32位的. 好久未 ...
- Tomcat出现需要输入账号和密码问题
这里是端口冲突问题: 可以做一下几个解决方案: 第一:更好Tomcat/conf/server.xml文件里面的制定8080端口号,更改为你能记住的端口数: 第二:找到冲突的端口的进程,杀死这个进程, ...
- koa2实现简单的图片上传
1.安装koa-body 2.引入koa-body const koa = require('koa'); const fs = require('fs'); const koaBody = requ ...
- 大数据入门第三天——基础补充与ActiveMQ
一.多线程基础回顾 先导知识在基础随笔篇:http://www.cnblogs.com/jiangbei/p/6664555.html 以下此部分以补充为主 1.概念 进程:进行中的程序,内存中有独立 ...
- django学习笔记(4)
Part 4: Forms and generic views ====> Write a simple form$ edit polls\templates\polls\detail.html ...
- 关于DFS与BFS
DFS(深度优先搜索) 为无向图 DFS的过程类似于树的先序遍历. 请看图: DFS此图的过程为: 1.首先任意找一个未被便利过的顶点,例如从V1开始,由于率先访问了它,所以需要标记V1即已经访问 ...
- [SYZOJ279]滑♂稽♂树
主♂席♂树♂裸♂题 https://syzoj.com/problem/279 https://oj.changjun.com.cn/problem/detail/pid/2425 // It is ...
- Distributed3:SQL Server 分布式数据库性能测试
我在三台安装SQL Server 2012的服务器上搭建分布式数据库,把产品环境中一年近1.4亿条数据大致均匀地存储在这三台服务器中,每台Server 存储4个月的数据,物理机的系统配置基本相同:内存 ...
- linux多项目分别使用不同jdk版本(tomcat版)
此操作只针对tomcat 背景:linux服务器普通用户默认版本为jdk6,jboss项目使用jdk6版本 ,但是tomcat需要使用jdk7.当然也可以分开使用不同账户来启用这两个项目,下面主要介绍 ...
- 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]
儿子经常要把自拍的视频(ts格式)转成表情包,下载了几个工具都不大好用,更多的还要收费.那就想自己写一个吧,没想到这一下断断续续地,居然 3 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...