-
基本查找算法---顺序表查找
2019-03-10 14:56:06关键字是数据元素中某个数据项的值,又称为键值,用它来标示一个数据元素。也可以标示一个记录的某个数据项(字段)的值,称之为关键码。 若此关键字课可以唯一的标示一个记录,那么此关键字为主关键字。主关键字所在...查找概论
查找表是由同一类型的数据元素(或记录)构成的集合。
关键字是数据元素中某个数据项的值,又称为键值,用它来标示一个数据元素。也可以标示一个记录的某个数据项(字段)的值,称之为关键码。- 若此关键字课可以唯一的标示一个记录,那么此关键字为主关键字。主关键字所在的数据项称为主关键码。
- 对于那些可以识多个数据元素(或记录)的关键字,我们称之为此次关键字。次关键字可以理解为是不以唯一标示一个数据元素的关键字,它对应的数据项就是次关键码
按照查找表操作方式可以分为:静态查找表和动态查找表
静态查找表:只做查找操作的查找表
主要的操作:- 查询某个”特定的“数据元素是否在查找表中。
- 检索某个”特定的“数据元素和各种属性。
动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已经存在的某个数据元素。
动态查找表的操作: - 查找时插入数据元素
- 查找时删除数据元素
为了提高查找的效率,专门为查找操作设置数据结构,这种面向查找操作的数据结构成为查找结构
顺序表查找
又叫做线性查找,是查找算法中最基本的查找,它的过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所差的记录,查找不成功。
算法实现如下:/** * 顺序表查找 * @param a * @param n * @param key * @return */ public int Sequential_Search(Object[] a, int n, Object key) { for (int i = 0; i < n; i++) { if(a[i] == key) { return i; } } return 0; }
顺询表查找优化:
设置哨兵/** * 顺序表查找的优化 * 设置哨兵 * 注意数组中元素值下标从1开始 * @param a * @param n * @param key * @return */ public int Sequential_Search2(Object[] a, int n, Object key) { int i = n; a[0] = key; i = n; while(a[i] != key) { i--; } return i; }
该算法的时间复杂度为O(n)
-
主板检测卡代码表
2011-09-11 20:26:32另外,同一块主板的不同PCI槽,有的槽有完整代码送出,如DELL810主板只有靠近CPU的一个PCI槽有完整的代码显示,一直变化到“00”或“FF”,而其它槽走到“38”则不继续变化。 6、复位信号所需时间ISA与PCI不一定... -
auditlogger:在DynamoDB表中存储Web请求日志-源码
2021-03-22 08:59:35查看谁访问了应用程序中的内容 哪些功能在应用程序中使用最多,由谁使用 这个项目是一个Spring Boot应用程序,它利用过滤器从HTTP请求和响应中提取有用的信息。 它使用DynamoDB客户端将提取的信息存储在AWS ... -
-
查找的基本概念(笔记)
2020-12-14 21:54:271.查找表 查找表是由同一类型的...(主关键字有点像数据库中的主码,次关键字暂时想不到像什么) 3.查找 查找时指根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。若表中存在这样一个记录1.查找表
查找表是由同一类型的数据元素(或记录)构成的集合。
2.关键字
关键字是数据元素(或记录)中某个数据项的值。用它可以标识一个数据元素(或记录)。若此关键字可以唯一标识一个记录,则称此为主关键子(对于不同记录,其关键字均不同)。反之,称用以识别若干记录的关键字为次关键字。当然数据元素只有一个数据项时,其关键字即为该数据元素的值。(主关键字有点像数据库中的主码,次关键字暂时想不到像什么)
3.查找
查找时指根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。若表中存在这样一个记录,则查找成功,此时查找的结果棵给出整个记录的信息,或指示该记录在查找表中的位置;若表中不存在关键字等于给定值的记录,则称查找不成功,此时查找的结果可给出一个“空”记录或“空”指针。
4.动态查找表和静态查找表
若在查找的同时对表做修改操作(如插入和删除),则相应的表称之为动态查找表,否则称之为静态查找表。
5.平均查找长度
为确定记录在查找表的位置,需和给定值进行比较的关键字个数的期望值,称之为查找算法在查找成功时的平均查找长度。查找成功过的平均查找长度:
-
SQL SERVER2008查询分析器的基本使用
2019-11-03 09:57:33以一个简单的药品信息库为例: 题目: 1 利用sql建立药品信息数据库,并定义以下基本表: 药品(编号,名称,价格,厂商编号) 处方(药品号,数量,医生编号) 医生 (编号,姓名,科室,职称) 定义主码、外码、...以一个简单的药品信息库为例:
题目:
1 利用sql建立药品信息数据库,并定义以下基本表:
药品(编号,名称,价格,厂商编号)
处方(药品号,数量,医生编号)
医生 (编号,姓名,科室,职称)
定义主码、外码、和数量、价格的取值范围。
2 在三个表中输入若干记录,注意如果输入违反完整性约束条件的记录系统有何反应。首先,打开SQLSERVER2008,打开查询分析器
建库:
药品信息库.sqlCreate database 药品信息库 On primary ( name='药品信息库.mdf', filename='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\药品信息库_data.mdf', size=3, maxsize=unlimited, filegrowth=1 ) Log on (name='药品信息库.ldf', filename='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\药品信息库_log.ldf', size=1, maxsize=20, filegrowth=10% )
建表:
医生.sqlCreate table 医生( 编号 int PRIMARY KEY, 姓名 nchar(10), 科室 nchar(10), 职称 nchar(10), );
药品.sql
Create table 药品( 编号 int PRIMARY KEY, 名称 nchar(10) UNIQUE , 价格 decimal(18,2)CHECK(价格>0), 厂商编号 int, );
处方.sql
Create table 处方( 药品号 int, 数量 nchar(10)CHECK(数量>0) , 医生编号 int, FOREIGN KEY(医生编号) REFERENCES 医生(编号) FOREIGN KEY(药品号) REFERENCES 药品(编号) );
创建视图:
右键视图,新建视图,依次添加医生表,处方表,药品表即可,效果图如下:
向表中插数据:
医生数据.sqlINSERT INTO 医生 (编号,姓名,科室,职称) VALUES ('03','王五','小儿科','主任医师 '), ('01','张三','外科','主刀医师 '), ('02','李四','内科','主治医师 '), ('04','王二','眼科','副主任医师 '), ('05','赵六','妇科','主任医师 '); select * from 医生
效果图:
药品数据.sqlINSERT INTO 药品 (编号,名称,价格,厂商编号) VALUES ('2001','板蓝根','20.00','1001'), ('2002','小儿感冒颗粒','35.00','1002'), ('2003','三九感冒灵','24.00','1003'), ('2004','三九胃泰','45.00','1004'), ('2005','金银花颗粒','42.00','1005'); select * from 药品
效果图:
处方数据.sqlINSERT INTO 处方 (药品号,数量,医生编号) VALUES ('2001','1','01'), ('2001','5','02'), ('2002','2','02'), ('2003','7','03'), ('2004','4','04'), ('2005','3','05'); select * from 处方
效果图:
注意: 建表的时候各表的主外键选择,依赖关系是最基本最重要的结语
如果你喜欢我写的文章,欢迎来踩我个人搭建的博客~
ChengNing’s Blog -
mysql数据库的基本操作语法
2018-12-05 16:43:13foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据 check:检查,指定一个表达式,用于检验指定数据 MySQL不支持check约束,但可以使用check约束,而没有任何效果; 根据约束数据列限制,约束... -
实验1-大型数据库的基本操作
2018-05-18 09:24:37实验一 大型数据库的基本操作 一、实验目的 1. 熟悉大型数据库实验环境,以MS SQL SERVER为例。 2. 掌握MS SQL SERVER的企业管理器的用法。 3. 能够根据给定的设计要求,设计数据库和数据库表结构。 4. 能够使用MS ... -
【Android学习之路】之从零开始做一个小项目(三)
2020-05-31 21:58:08这是【Android学习之路】之从零开始做一个小项目的第三篇,本篇以讲解进度和想法为主,欢迎阅读~ ????本文目录目前进度首先是上一期有提到的新增功能字体修改忘记密码页面课程表页面个人资料页面现在的想法和计划 ...这是【Android学习之路】之从零开始做一个小项目的第三篇,本篇以讲解进度和想法为主,欢迎阅读~
目前进度
① 新增了上一期提到的【忘记密码】和【课程表】页面以及字体的修改
② 个人资料页面基本完成,功能方面目前尚有欠缺
③ 【学习】页面需要用到的相关课程表、教师表等基本设计好
④ 【计划】页面已经有设计思路,正在准备中
首先是上一期有提到的新增功能
字体修改
之前的页面中一些按钮和TextView的字体属实有些看着不太爽,嘿嘿,这期我就将其更新了,采用了一个称之为“可口可乐”的字体😁,hhh其实我也不知道这名怎么起的,不过装上后还挺好看的~
来张学生登录页面的对比图(左侧是之前的,右侧是修改字体后的,这张截图时还未加上【忘记密码】功能):
当然其他地方也有一些应用,这里就只是展示一下这个字体的效果哈,这样看着变化不大,不过在手机上看着体验感确实是有一些好感提升的😋忘记密码页面
这个页面的设计灵感也不知道是哪里来的哈哈,突然有灵感就把它设计出来了,自我感觉还挺不错的😎,因为这里涉及到学生用户的手机号,而学生用户在在注册时是不需要填写手机号的,需要到登陆之后的个人资料页面填写,【个人资料】页面一会做展示(自我感觉也十分满意的一个设计~),然后这里通过输入的手机号到数据库中进行查找,如果没有与之绑定用户,则有以下判断并提示用户:
手机短信验证的话功能实现原理和上一期中讲的一致,只不过这里在条件判断做了一些相应的修改,因为这里是需要再次确认密码的,所以判断会略有不同(不过我也在考虑将在注册时加上:确认密码,防止用户输入的时候不小心输错的情况)
该SForgetActivity中因为用到的查询方法是通过手机号查询,所以我新加上了通过手机号查询学生信息的方法
以及相应的调用:/** * 通过手机号获取学生资料信息 **/ public StudentBean getStudentInfoByPhoneNum(String phone) { String sql = "SELECT * FROM " + DBOpenHelper.STUDENT_INFO + " WHERE phoneNumber=?"; Cursor cursor = db.rawQuery(sql, new String[]{phone}); StudentBean studentBean = null; while (cursor.moveToNext()) { studentBean = new StudentBean(); //将对应用户名的所有数据从表中动态赋值给bean studentBean.userName = cursor.getString(cursor.getColumnIndex("userName")); studentBean.realName = cursor.getString(cursor.getColumnIndex("realName")); studentBean.nickName = cursor.getString(cursor.getColumnIndex("nickName")); studentBean.sex = cursor.getString(cursor.getColumnIndex("sex")); studentBean.qq = cursor.getString(cursor.getColumnIndex("qq")); studentBean.wechat = cursor.getString(cursor.getColumnIndex("wechat")); studentBean.motto = cursor.getString(cursor.getColumnIndex("motto")); studentBean.ID = cursor.getString(cursor.getColumnIndex("ID")); studentBean.password = cursor.getString(cursor.getColumnIndex("password")); studentBean.phoneNumber = cursor.getString(cursor.getColumnIndex("phoneNumber")); } cursor.close(); return studentBean; }
当然重置密码自然也需要写一个更新信息的方法以及相应的调用:/** * 根据手机号修改学生资料信息,这里的key指代表字段,value表示数值 **/ public void updateStudentInfoByPhone(String key, String value, String phone) { ContentValues cv = new ContentValues(); cv.put(key, value); db.update(DBOpenHelper.STUDENT_INFO, cv, "phoneNumber=?", new String[]{phone}); }
课程表页面
然后是一个花里胡哨的课程表页面(哈哈,有点参考着【超级课程表】的样式来模仿的):
每个方块内还没加上内容,因为这部分的功能在调试时还存在一点问题,所以就补贴代码啦,最后的项目源码是会公开的哦~
当然后期考虑给课程表页面加上自己能修改课程(一定条件下)的功能~
个人资料页面
哈哈,这个页面真的是我炒鸡爱的一个设计,先让大家康康叭😆
这是学生用户的【个人资料】页面,学号、真实姓名、账号是以不可修改的形式展示出来,密码不展示出来,其他的信息可点击右侧的ImageButton进行编辑~
同时,这里的昵称和一些重要信息会通过Bundle传回到SMainActivity,然后将昵称显示在相应的位置,如下图:
关于头像,我后续会加上能更换头像的功能😁
现在的想法和计划
除了上面有提到的一些需要改进和新加的小地方,现在大的方面的计划就是【计划】页面分为上下两部分,上面写要完成的计划,有相关的日期限制。完成后点击按钮,归到下半部分(已经完成)的部分里,然后两个部分都是可滑动的~
【学习】页面的话计划是老师出题后,学生端登录后可看到试卷,然后进行答题,交卷后一些题型自动判分,一些题型教师端可看到答题结果并相应给分(相关的表已经设计好了一部分,因为其中有一些关系还没处理好,所以就不在这里展示啦,下一期做表的统一展示)。
这期以介绍进度和展示为主,一些细节的地方未做介绍,因为我想着做的更好之后写最终的总结篇再详细介绍会更好一些,所以,这篇以及之后的最近两篇应该都是以介绍进度为主~😁
继续加油吧,冲冲冲💪!第二阶段传送:【Android学习之路】之从零开始做一个小项目(二)
下一阶段会在这周更新出来,然后在本文附上链接~(ps:在最终项目完成后我会将项目源码上传至GitHub😊,希望大家耐心等待~)
-
PHP基础教程 是一个比较有价值的PHP新手教程!
2010-04-24 18:52:44通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: echo "Hello World!"; ?> First PHP page // Single line C++ style comment /* printing the message */ ... -
irs-master-index-file:Python脚本和文档,用于构建来自各种来源的非营利组织的主索引文件-python source ...
2021-03-25 07:57:22主索引文件旨在提供一种在单个位置跟踪和搜索所有非营利回报的方法,以提供有关其运营状态的一些基本报告和990报告。 对于非营利性IRS申请的每条记录,该数据将包含一行数据,包括修订后的申请和撤销记录。 预期... -
约瑟夫环 线性链表(m=20,n=7,7个人的密码依次为:3,1,7,2,4,8,4)
2009-04-12 22:24:11开始给定一个正数m,做为报数上限,从某个人开始循环报数,报到m的人出列;再以该出列的人手中的密码为报数上限,依次报数。打印出列的人的序号的先后顺序。 一. 需求分析 1. 本演示程序中,人数n应为任意的,首先... -
约瑟夫环 线性链表[m=20,n=7,7个人的密码依次为:3,1,7,2,4,8,4]
2009-04-13 18:16:16开始给定一个正数m,做为报数上限,从某个人开始循环报数,报到m的人出列;再以该出列的人手中的密码为报数上限,依次报数。打印出列的人的序号的先后顺序。 一. 需求分析 1. 本演示程序中,人数n应为任意的,首先... -
IDA基本操作
2018-05-16 16:15:22New(新建),Go(运行),Previous(上一个)。当我们初次打开的时候选择GO就可以了。进入之后,选择左上角的file中的open打开文件。以凯撒密码为例,打开文件以后。主界面工作区显示IDA View-A是反汇编窗口,Hex... -
软件病毒特征码定位软件multiCCL
2010-08-02 11:12:11程序会读取并认可 旧记录中的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置任何您想保留的文件,以免给您带来损失。 定位过程中将删除... -
Log Explorer4.2注册码
2011-06-23 21:17:582)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后,... -
-
我想制作一个电子阅读器用stm32f103rct6,求住制作流程,网上有一个,不是很懂求指教
2015-01-27 07:10:03天线是阅读器中的一个重要组成部分。其作用是向外发射一组固定频率的电磁波,为射频卡提供能量、传递数据。 本系统中使用的是PCB天线,天线的设计关系到阅读器的读写距离,甚至关系到阅读器是否能正常与射频卡通信... -
Log Explorer4.2(注册码+汉化包)
2011-06-22 00:45:082)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后,... -
关系的完整性
2019-09-25 15:54:24若属性A(一个或一组)是基本关系R的主属性,则A不能取空值(null) 规则说明: 实体具有某种唯一性标识 关系模型中以主码作为唯一标识 主码属性不能取空,若取空,则说明存在某个不可标识的实体,即存在... -
Lumigent Log Explorer(含注册码)
2011-08-03 16:20:53如果不选用了删除事务日志中不活动的条目 再用Log explorer打试图看日志时,就能看到原来的日志 2)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开log ... -
sql2000 Log Explorer4.2(含注册码)+汉化
2012-06-14 10:44:182)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后,... -
SQL课堂笔记<2>
2018-04-02 11:30:49一个关系/表中只要能唯一标识一个记录的属性列都可以作为候选码,如学生表中的学号,身份证号,手机号 从候选码中选一个特殊作为主码PK, 一个关系表中只有一个PK. 如性别,生日一般叫非主属性 3 基本表:数据库的... -
Log Explorer 4.2 官方版(含注册码)
2013-09-14 10:57:532)修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复 3)然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上, 否则会出现数据库正在使用无法恢复) 恢复完后... -
CANON 佳能 iR5000/iR6000 数码复印机故障码
2012-05-12 11:05:56E248 0003 读取电路板或EEPROM故障 向EEPROM写入数据时,EEPROM内的ID码与ROM中的ID码不同 检查读取电路板上的EEPROM安装是否正确 进入维修程序模式,选择COPIER>FUNCTION>CLEAR>R-CON 选择R-CON,当显示反转后按... -
数据库多种范式的定义 3NF BCNF
2017-01-18 18:33:16第二范式 F)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键、主码。 第三范式(3NF)要求一个数据库表中... -
这是一篇有关 在线聊天系统 的系统报告书
2010-04-17 15:55:15本网站以网络交友为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型平台。本文所介绍的网络聊天系统是基于开放的web服务器应用程序开发设计的,其主要特性是能动态完成信息的传递,... -
DBX260中文说明书
2013-04-24 11:07:35用数据轮按钮左右旋动,箭头显示被选的奇才(Wizard)设置,选择三个选项中的任何一个,旋转数据轮,如果执行系统设置,按键或数据轮,出现下面的显示: •简单地旋转数据轮,选择单声道或立体声输入配置。... -
《ASP与网页数据库设计》书中的代码
2009-06-11 21:56:14本书从基础知识讲起,循序渐进,共19章,前11章主要讲解了ASP、网页数据库设计等相关基础知识,后8章主要以实例为主,并通过详细的讲解加以说明。读者通过对这些知识的深入学习后,可以熟练地掌握ASP与数据库结合...