-
数据库系统基础:初级篇(第5版)(讲述数据库系统原理的经典教材)--详细书签版
2013-04-05 13:45:324.6 其他表示法的示例:UML类图中的特化/泛化 81 4.7 数据抽象、知识表示和本体论概念 82 4.7.1 分类和实例化 82 4.7.2 标识 83 4.7.3 特化和泛化 83 4.7.4 聚集和关联 83 4.7.5 本体论和... -
数据库系统基础:高级篇(第5版)(讲述数据库系统原理的经典教材)--详细书签版
2013-04-05 14:33:11第二部分讲述面向数据库的概念、语言、设计及对象-关系和扩展-关系系统;第三部分主要描述了数据库安全和客户-服务器体系结构;第四部分简要介绍了xml、数据挖掘和数据仓库等几种新兴技术。 本书是高等院校计算机... -
Java语言的科学与艺术(国外计算机科学经典教材)
2010-12-27 11:24:568.3 作为抽象概念的字符串 8.4 使用String类中的方法 8.5 字符串处理案例研究 8.6 小结 8.7 复习题 8.8 编程练习 第9章 面向对象图形 9.1 acm.graphics模型 9.2 acm.graphics程序包的结构 9.3 ... -
C语言基数排序——顺序队列实现
2018-07-24 17:48:40基数排序 基本要求: ...基数排序属于分配式排序、又称桶子法。通过键值的查询,将要排序的元素分配至某些“桶”中,以达到排序的作用。 具体思想: 以整形为例,将整形10进制按每位拆分,然后从...基数排序
基本要求:
从键盘上输入n个程度为m的整数,要求输出这些整数的升序排列。
具体要求:
- 使用的数据结构是队列,利用顺序队列来实现
- 有良好的人机交互
- 能够输出每一趟分配和收集的情况
基本概念:
基数排序属于分配式排序、又称桶子法。通过键值的查询,将要排序的元素分配至某些“桶”中,以达到排序的作用。
具体思想:
以整形为例,将整形10进制按每位拆分,然后从低位到高位依次比较
主要分为两个过程:
分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中
收集,再将放置在0~9号桶中的数据按顺序放到数组中
重复分配收集过程,从个位到最高位为重复次数
代码实现:
#include<stdio.h> #include<stdlib.h> #include<string.h> #define Radix 10 //代表Radix(10)个队列 typedef int QElemType; typedef struct { QElemType *base; //初始化的动态分配空间,存储数据 int front; //头指针,指向队列头元素,用来移动 int rear; //尾指针,指向队列尾元素的下一位置,确定长度 } SqQueue; //distribute进行第n趟分配 //原始数据保存在Q.base数组中 //ArrType是SqQueue类型的数组, void distribute(SqQueue &Q,int n,SqQueue ArrType[]) { //quot-商 //rem-存储每个数据的第n位(即第1位、第2位...第n位)的值 int i,c,temp,quot,rem; //for置空Radix(10)个队列 for(i=0; i<Radix; i++) ArrType[i].front=0; //for处理每个数据的第n位 for(i=0; i<Q.rear; i++) { //将第i个数据暂存到quot quot=Q.base[i]; c=0; //while计算第i个数据的第n位的值并保存到rem while(c<n) { c++; rem=quot%Radix; quot/=Radix; } //将第n位为rem的数据复制到第rem个队列 //即根据数据的第n位的数字rem,将数据分配到第rem个队列的尾部 ArrType[rem].base[ArrType[rem].front++]=Q.base[i]; } printf("第%d趟分配之后的情况是:\n",n); for(i=0; i<Radix; i++) { temp=ArrType[i].front; //if如果第i个队列不为空 if(temp>0) { printf("队列[%d]队头指针front->",i); for(c=0; c<temp-1; c++) printf("%d-",ArrType[i].base[c]); printf("%d<-队列[%d]队尾指针rear\n",ArrType[i].base[temp-1],i); } } } //collect进行第n趟收集 //ArrType保存了第n-1趟分配的结果 void collect(SqQueue &Q,int n,SqQueue ArrType[]) { //collected记录已收集数据的数量 int i,collected=0; //for将数组ArrType中的数据收集到int型数组Q.base中 for(i=0; i<Radix; i++) { //if如果第i个队列不空,就收集它的数据 if(ArrType[i].front!=0) { //进行收集(简单地复制到Q.base数组就行了) memcpy(Q.base+collected,ArrType[i].base,ArrType[i].front*sizeof(int)); collected+=ArrType[i].front; } } printf("第%d趟收集之后的情况是:\n",n); for(i=0; i<=Q.front-1; i++) { printf("%d ",Q.base[i]); } printf("\n\n"); } //计算每个队列的初始长度(为数据量的1/Radix) void Ord(SqQueue &Q,SqQueue ArrType[],int M) { int i; int temp=M; for(i=0; i<Radix; i++) { //为第i个队列分配空间 ArrType[i].base=(int*)calloc(temp,sizeof(int)); ArrType[i].rear=temp; } } //for进行M(M为输入的每个数据的长度)趟分配和收集 void RadixSort(SqQueue Q,int M,SqQueue ArrType[]) { for(int i=1; i<=M; i++) { distribute(Q,i,ArrType); collect(Q,i,ArrType); } } int main() { int i,M; SqQueue Q,ArrType[Radix]; printf("请输入每个数据的长度:"); scanf("%d",&M); printf("请输入共有多少个数据:"); scanf("%d",&Q.rear); Q.base=(int*)calloc(Q.rear,sizeof(int)); Q.front=0; printf("请输入%d个长度为%d的数据:\n",Q.rear,M); for(i=0; i<Q.rear; i++) scanf("%d",&Q.base[Q.front++]); printf("\n"); Ord(Q,ArrType,M); RadixSort(Q,M,ArrType); //以下的free释放动态分配的内存 free(Q.base); for(i=0; i<Radix; i++) free(ArrType[i].base); system("PAUSE"); return 0; }
数据处理:
尾言:
基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数
在某些时候,基数排序法的效率高于其它的稳定性排序法。
-
计算机网络与因特网(互联网技术的“圣经”)
2011-07-13 00:32:046.2 包的概念 27 6.3 包和时分多路复用 28 6.4 包和物理帧 28 6.5 字节充填 29 6.6 传输差错 30 6.7 奇偶位与奇偶校验 30 6.8 差错检测中的概率和算术 31 6.9 校验和检测差错 32 6.10 循环冗余校验检测差错 32 6.11 ... -
UML和模式应用 面向对象分析与设计导论
2010-02-07 15:04:499.5.2 销售点终端系统的概念模型(只包括概念) 9.6 建立概念模型的指导原则 9.6.l 怎样建立一个概念模型 9.6.2 事物的命名和建模:制图者的方法 9.6.3 在识别概念时常犯的错误 9.7 类似概念的解析--... -
【MATLAB R2014a完全自学一本通】-第二部分(共两部分)真正的入门、进阶、实践
2016-04-24 14:04:042.2.1 矩阵和数组的概念及其区别 2.2.2 矩阵的构造 2.2.3 矩阵大小及结构的改变 2.2.4 矩阵下标引用 2.2.5 矩阵信息的获取 2.2.6 矩阵的保存和加载 2.3 运算符 2.3.1 算术运算符 2.3.2 关系运算符 ... -
【MATLAB R2014a完全自学一本通】-第一部分(共两部分)真正的入门、提高、实践
2016-04-24 13:24:382.2.1 矩阵和数组的概念及其区别 2.2.2 矩阵的构造 2.2.3 矩阵大小及结构的改变 2.2.4 矩阵下标引用 2.2.5 矩阵信息的获取 2.2.6 矩阵的保存和加载 2.3 运算符 2.3.1 算术运算符 2.3.2 关系运算符 ... -
基于AT89S52 单片的频率计
2010-01-04 08:47:37结果的显示格式采用科学计数法,即有效数字乘以10 为底的幂。这里设计的频 率计用4 位数码管显示测量结果。 定时方法实现频率测量。定时方法测量的是待测信号的周期,这种方法只设 一种量程,测量结果通过浮点数运算... -
C++大学教程,一本适合初学者的入门教材(part2)
2009-09-20 15:15:421.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 练习 第2章 控制结构 2.1 简介 2.2 算法 2.3 伪代码 2.4 ... -
高校实验室管理系统_实验室信息管理系统(LIMS)全解
2020-11-30 17:17:361. LIMS的基本概念 LIMS实验室管理系统是为实验、检测等业务板块提供流程化、模块化、标准化操作管理系统,打造基于行业法规的实验室全流程质量控制管理系统,实现实验室“人、机、料、法、环”关键环节管理。...1. LIMS的基本概念
LIMS实验室管理系统是为实验、检测等业务板块提供流程化、模块化、标准化操作管理系统,打造基于行业法规的实验室全流程质量控制管理系统,实现实验室“人、机、料、法、环”关键环节管理。
2. LIMS的功能简介
LIMS管理过程实现实验室信息、实验教学课程模块、仪器设备管理、耗材试剂管理、实验室资源信息交互等管理业务能力的提升。实验过程实现从业务申请、样品交接、任务分配、实验过程(包括仪器自动采集数据)、报告生成、数据及报告的审核批准、报告签发打印(包括电子签名)等全过程“无纸化”。所有流程中的各环节为计算机操作和监控,提高了实验精度,能够灵活应对数据导入、数据查询、数据分析、报表展示等,并能针对用户的设备对接等个性化需求进行功能的定制开发,满足使用者需求。
3. LIMS在实验室管理中的作用
3.1 提高实验室管理分析水平能力和工作效率
对实验室按照标准体系进行管理,以标准化方式规范质量检验和质量管理工作流程,提高实验室综合管理能力和分析水平,建立起快速高效的监督信息化平台,确保质监工作更好地为生产、科研及客户服务。仪器数据的自动采集可以减少手工录入的错误,加快数据传送的速度;统一实验室业务调度,可以优化实验室工作秩序,减少了工作者精力,提高了工作效率。
3.2 提高分析数据安全性和可靠性
LIMS 系统记录了每个分析数据的原始信息,包括数据生成、修改、审核等每一步过程。在对数据产生疑问时,随时调出该数据对应的原始记录。严格的验证系统使得一丁点的数据修改都将记录在案。分布式的数据存放,防止了数据遭受灾难性的破坏,确保实验室数据安全可靠。
3.3 规范实验室工作流程
LIMS 系统为实验室的工作流程建立严格程序,实现工作流程化。流程化管理方法及工作痕迹记忆功能,使实验室管理人员对实验室的每个情况了如指掌,可以轻松浏览实验室每个员工的工作痕迹,及时发现不符合质量管理体系的行为,并加以改进,规范实验室工作流程。
3.4 降低实验室运行成本
通过对数据的统计与趋势分析,可以追踪实验室所有试剂、样品等材料的出入库进行严格管理,建立合理的库存量,加强成本考核,降低实验费用。自动生成各类报表,提高无纸化管理水平。LIMS 系统给实验室各级管理及部门人员创造一个功能强大、方便实用的工作平台,日常事务基于该系统进行处理,减少人员配制,提高工作效率。
3.5 为实验室领导决策提供依据
LIMS 系统强大的统计查询功能使实验室管理更加科学化,定量化。用LIMS前,原材料使用情况,仪器等管理都要有专职管理人员。现在只要根据需要选择不同的查询条件很快就会查出你想要的信息;并通过设定材料使用、设备使用记录、工作任务等各种提醒,LIMS会自动生成提醒,使实验室的负责人做到决策有依据。
4. LIMS的应用
实验室是获取数据并对数据进行科学分析的场所,实验室工作流程的规范化是实验室信息化管理的基础,实验室要适应新时期工作的需求和市场环境,必须提高实验室管理水平。LIMS可适用于高校科研、医院中心实验室、科研院所、生物制药、制造业环境监测、煤炭矿产、石油化工、生物制药等行业实验室,为检验检测等实验室。有效推动实验室进行信息化建设,实现现代化实验室管理。
-
Linux C 编程一站式学习.pdf
2010-11-24 01:27:271. 数据结构的概念 2. 堆栈 3. 深度优先搜索 4. 队列与广度优先搜索 5. 环形队列 13. 本阶段总结 II. C语言本质 14. 计算机中数的表示 1. 为什么计算机用二进制计数 2. 不同进制之间的换算 3. 整数的加减运算 3.1. ... -
软件工程教程
2012-07-06 23:10:29软件工程的概念 应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。 软件工程的原则 任务2 软件生命周期与软件开发模型 软件生命周期 ... -
C#微软培训教材(高清PDF)
2009-07-30 08:51:17C#--微软.NET的第一语言 本书着重介绍语言本身,比较少... Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 ... -
《计算机操作系统》期末复习指导
2009-12-30 10:57:551、操作系统的概念 操作系统(Operating System,OS),是一种软件,属于系统软件; 1、科普的观点 操作系统是计算机系统的管理和控制中心,它依照设计者制定的各种调度策略组织和管理计算机系统资源,使之... -
C#微软培训资料
2014-01-22 14:10:17Microsoft.NET 的概念 .NET 框架 C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得... -
程序设计抽象思想:C语言描述.[美]Eric S.Roberts(带详细书签).pdf
2019-03-12 19:32:051.3.4 数据类型的概念 9 1.3.5 整数类型 9 1.3.6 浮点类型 10 1.3.7 文本类型 11 1.3.8 布尔类型 12 1.3.9 简单的输入与输出 12 1.4 表达式 14 1.4.1 优先级与结合性 14 1.4.2 表达式中的类型混合 15 ... -
Visual C++ 2010入门经典(第5版)--详细书签版
2012-10-16 21:04:298.1.1 析构函数的概念 363 8.1.2 默认的析构函数 364 8.1.3 析构函数与动态内存分配 366 8.2 实现复制构造函数 369 8.3 在变量之间共享内存 370 8.3.1 定义联合 371 8.3.2 匿名联合 372 8.3.3 类和结构中的... -
Visual C++ 2010入门经典(第5版)--源代码及课后练习答案
2012-12-15 16:45:236.5.1 函数重载的概念 258 6.5.2 引用类型和重载选择 260 6.5.3 何时重载函数 260 6.6 函数模板 261 6.7 使用decltype操作符 263 6.8 使用函数的示例 265 6.8.1 实现计算器 265 6.8.2 从字符串中删除空格 ... -
Visual C++ 2008入门经典--详细书签版
2013-02-02 16:07:156.5.1 函数重载的概念 253 6.5.2 何时重载函数 255 6.6 函数模板 255 6.7 使用函数的示例 257 6.7.1 实现计算器 258 6.7.2 从字符串中删除空格 260 6.7.3 计算表达式的值 261 6.7.4 获得项值 263 6.7.5 ... -
Visual C++ 2008入门经典--源代码及课后练习答案
2013-02-02 16:13:256.5.1 函数重载的概念 253 6.5.2 何时重载函数 255 6.6 函数模板 255 6.7 使用函数的示例 257 6.7.1 实现计算器 258 6.7.2 从字符串中删除空格 260 6.7.3 计算表达式的值 261 6.7.4 获得项值 263 6.7.5 ... -
Visual C++ 2005 入门经典 详细书签版
2013-02-02 16:39:43第11章 Windows编程的概念 576 11.1 Windows编程基础 576 11.1.1 窗口的元素 577 11.1.2 Windows程序与操作系统 579 11.1.3 事件驱动型程序 579 11.1.4 Windows消息 579 11.1.5 Windows API 580 ... -
Visual C++ 2005入门经典--源代码及课后练习答案
2013-02-02 16:42:04第11章 Windows编程的概念 576 11.1 Windows编程基础 576 11.1.1 窗口的元素 577 11.1.2 Windows程序与操作系统 579 11.1.3 事件驱动型程序 579 11.1.4 Windows消息 579 11.1.5 Windows API 580 ... -
Python网络编程 - 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块 电子邮件 - SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / ...
-
《行星齿轮传动设计》饶振纲编著.pdf
2019-05-16 20:23:38到目前为止国内外学者对行星齿轮传动效率的计算方法做了很多研究在设计计算中用到的主要有以下三种力偏移法、啮合功率法和传动比法其中以啮合功率法的使用最为广泛【】。但是这三种计算方法都是建立的刚体... -
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供... -
ASP.NET精品课程+源代码
2009-01-05 20:15:51让学生对这门语言有一个总的认识和总的把握,以便与其他语言进行比较,对一些重要的概念像类、空间、接口等先作一下简要介绍,因为这些概念相对来说比较难理解,主要是让学生在案例学习当中以及自己在实践操作中去... -
深入学习shell脚本艺术
2011-02-22 04:01:01这本书也可作为教材来讲解一般的编程概念 译者:杨春敏,黄毅 mail:chunmin.yang@gmail.com 目录 ++++ 第一部分. 热身 1. 为什么使用shell编程 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 ... -
iPhone开发秘籍(第2版)--源代码
2012-12-11 13:51:222.8 秘诀:使用Instruments监视缓存对象的内存分配 48 2.9 使用Clang静态分析器 50 2.10 针对iPhone进行构建 51 2.10.1 安装开发配置 51 2.10.2 编辑应用程序标识符 51 2.10.3 设置Code Signing Identity 52 ...