当前位置:文档之家› 武汉理工大学算法分析实验报告

武汉理工大学算法分析实验报告

武汉理工大学算法分析实验报告
武汉理工大学算法分析实验报告

学生学号实验课成绩

学生实验报告书

实验课程名称算法设计与分析

开课学院计算机科学与技术学院

指导教师姓名晓红

学生姓名

学生专业班级软件工程zy1302班

2015 -- 2016 学年第一学期

实验课程名称:算法设计与分析

public class Quick3way

{

public static void sort(Comparable[] a, int lo, int hi) {

if (lo >= hi)

return;

int lt = lo, i = lo + 1, gt = hi;

Comparable pivot = a[lo];

while (i <= gt)

{

int cmp = a[i].compareTo(pivot);

if (cmp > 0)

exch(a, i, gt--);

else if (cmp < 0)

第二部分:实验调试与结果分析

一、调试过程(包括调试法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

1、调试法描述:

对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹;

2、实验数据:

"R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R";

3、实验现象:

4、实验过程中发现的问题:

(1)边界问题:

在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如:

什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分

排序等等;

(2)程序的调试跳转:

在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后,

会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准

确的定位程序。

二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

1、实验结果:

武汉理工大学微机原理接口实验报告

学生学号22实验课成绩 学生实验报告书 实验课程名称微机原理与接口技术 开课学院计算机科学与技术学院 指导教师姓名何业兰 学生姓名高胜洋 学生专业班级计算机1404 2016-- 2017学年第二学期

实验课程名称:微机原理及接口技术 第一部分:实验准备 一、实验目的和意义 1.熟悉接口试验箱的使用环境。 2.体会接口电路通过外部总线与处理器连接原理。 3.掌握可编程芯片8253的编程方法。 二、实验内容和环境 实验内容: 1、编写程序,将 8254 的计数器 0 和计数器 1 都设为方式 3,用信号源 1MHz 作为 CLK0时钟,OUT0 为波形输出 1ms 方波,再通过 CLK1 输入,OUT1 输出 1s 方波。 2、编写程序,将 8254 的计数器 0 设为方式 3,计数值为十进制数 4,用单次脉冲 KK1+作为 CLK0 时钟,OUT0 连接 MIR7,每当 KK1+按动 5 次后产生中断请求,在Wmd86程序运行结果栏上显示字符M 。改变计数值,验证 8254 的计数功能。 实验设备: PC 机一台,TD-PITE 实验装置一套。 三、实验基本原理与方法 (1)8254的功能 ?8253具有三个独立的16位计数器(0#~2#通道); ?每个通道有6种工作方式; ?可以进行二进制或十进制计数,计数方式为减1计数。 (最高计数频率2.6MHZ) (2)8254 的内部结构和外部引脚 图1.1 8254内部结构图1.2 8254外部引脚 (3)8254 的工作方式 ●方式0:计数到0 结束输出正跃变信号方式。 ●方式1:硬件可重触发单稳方式。 ●方式2:频率发生器方式。

考研数据结构必须掌握的知识点与算法-打印版

《数据结构》必须掌握的知识点与算法 第一章绪论 1、算法的五个重要特性(有穷性、确定性、可行性、输入、输出) 2、算法设计的要求(正确性、可读性、健壮性、效率与低存储量需求) 3、算法与程序的关系: (1)一个程序不一定满足有穷性。例操作系统,只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中。因此,操作系统不是一个算法。 (2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。 (3)一个算法若用程序设计语言来描述,则它就是一个程序。 4、算法的时间复杂度的表示与计算(这个比较复杂,具体看算法本身,一般关心其循环的次数与N的关系、函数递归的计算) 第二章线性表 1、线性表的特点: (1)存在唯一的第一个元素;(这一点决定了图不是线性表) (2)存在唯一的最后一个元素; (3)除第一个元素外,其它均只有一个前驱(这一点决定了树不是线性表) (4)除最后一个元素外,其它均只有一个后继。 2、线性表有两种表示:顺序表示(数组)、链式表示(链表),栈、队列都是线性表,他们都可以用数组、链表来实现。 3、顺序表示的线性表(数组)地址计算方法: (1)一维数组,设DataType a[N]的首地址为A0,每一个数据(DataType类型)占m个字节,则a[k]的地址为:A a[k]=A0+m*k(其直接意义就是求在数据a[k]的前面有多少个元素,每个元素占m个字节) (2)多维数组,以三维数组为例,设DataType a[M][N][P]的首地址为A000,每一个数据(DataType 类型)占m个字节,则在元素a[i][j][k]的前面共有元素个数为:M*N*i+N*j+k,其其地址为: A a[i][j][k]=A000+m*(M*N*i+N*j+k); 4、线性表的归并排序: 设两个线性表均已经按非递减顺序排好序,现要将两者合并为一个线性表,并仍然接非递减顺序。可见算法2.2 5、掌握线性表的顺序表示法定义代码,各元素的含义; 6、顺序线性表的初始化过程,可见算法2.3 7、顺序线性表的元素的查找。 8、顺序线性表的元素的插入算法,注意其对于当原来的存储空间满了后,追加存储空间(就是每次增加若干个空间,一般为10个)的处理过程,可见算法2.4 9、顺序线性表的删除元素过程,可见算法2.5 10、顺序线性表的归并算法,可见算法2.7 11、链表的定义代码,各元素的含义,并能用图形象地表示出来,以利分析; 12、链表中元素的查找 13、链表的元素插入,算法与图解,可见算法2.9 14、链表的元素的删除,算法与图解,可见算法2.10 15、链表的创建过程,算法与图解,注意,链表有两种(向表头生长、向表尾生长,分别用在栈、队列中),但他们的区别就是在创建时就产生了,可见算法2.11 16、链表的归并算法,可见算法2.12 17、建议了解所谓的静态单链表(即用数组的形式来实现链表的操作),可见算法2.13 18、循环链表的定义,意义 19、循环链表的构造算法(其与单链表的区别是在创建时确定的)、图解

武汉理工大学电工学实验报告

[电子电工实习报告] 车辆1104班 吴昊宇 2019年7月11日

目录 1.0实验目的 (3) 1.1实验原理 (4) 1.1.1原理图及原理说明 (4) 1.1.2电路装配图 (7) 1.1.3连线图 (7) 1.2实验内容 (8) 1.2.1实训过程 (8) 1.2.2元件清单 (8) 1.2.3作品展示 (22) 1.2.4实验数据分析 (23) 1.3总结 (23)

1.0实验目的 随着现代化技术的发展,电工电子技术在现代化生活中应用越来越广泛,小到家用电器,大到军事设备,在这些形形色色的种类繁多的设备中都用到了电工电子技术。很多的自动化半自动化控制的未处理系统都是以电子元件为基本单元,通过集成电路来实现的,这就要求工科学生掌握基本的电路设计、制作、检查和维修知识。 本实验的目的如下: ●强化安全用电意识,掌握基本安全用电操作方式。 ●基本掌握公共电烙铁的焊接技术,能够独立的完成简单电子产品的安装和焊接、拆卸过程,能掌握基本的电路维修维修方法。 ●基本掌握电路原理图、装配图的绘制,能独立的完成简单电子电路的设计。 ●了解常用电子器件的类别型号、规格、性能及其使用范围。 ●能够正确识别常用电子元件,并通过查阅相关手册了解其相关参数。 ●熟练的掌握万用表等仪表,并能够独立的检测电路的各种参数,且能检测出简单的电路问题。

1.1实验原理 1.1.1原理图及原理说明 图18 彩灯音乐盒电原理图 本电路以555芯片、二极管、三极管、电解电容与瓷介电容、音乐芯片、喇叭为其核心元件,LED交替发光产生明暗变化,伴随着喇叭发出事先录制的音乐。 工作原理综述:电源开关K1闭合,发光二极管LED3亮,开始由于电容C1短路,所以555芯片的2和6脚为低电平0,又4脚恒为高电位1,由555芯片的输出特性知输出端3为高电平1,LED1亮,三极管VT2截止,LED2灭,7 C1通过电阻R1,R3充电,2和6脚电位升高,最终达到高电平1、3脚输出低电平0,LED1灭,三极管VT2导通,LED2亮,7为低阻态,通过电源负开始放电致使2和6脚电位降低至0,3脚又输出高电位1,LED1亮LED2灭,循环往复。而LED3绿灯和喇叭都一直接

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

武汉理工大学-操作系统实验报告

学 生 实 验 报 告 书 实验课程名称 操 作 系 统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 软件工程 2014 — 2015 学年 第 一 学期 学生学号 实验课成绩

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者专业班级组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 掌握Linux系统键盘命令的使用方法。 二、实验设计(包括实验方案设计,实验手段的确定,实验步骤,实验过程等) Vi编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi。 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: 例如:$ vi myfile 有一点要注意,在进入vi之后,是处于“命令行模式”,要切换到“插入模式”才能够输入文字。 2. 切换至插入模式编辑文件 在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。 3. Insert 的切换 处于“插入模式”,就只能一直输入文字,按一下“ESC”键转到”命令行模式”能够删除文字。 4. 退出vi及保存文件 在“命令行模式”下,按一下“:”冒号键进入“Last line mode”,例如: : w myfilename : wq (输入”wq”,存盘并退出vi) : q! (输入q!,不存盘强制退出vi) 三、主要实验工具、仪器设备及耗材 安装Linux系统的计算机一台。

第二部分:实验结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 在整个过程中,最困难的就是记忆整个Vi命令。在查阅资料的情况下,这个问题得到了解决。 二、实验结果描述 1.进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面 图1 vi主界面 2.切换至插入模式编辑文件 在“命令行模式”下按一下字母”i”就可以进入”插入模式”。 3.退出vi及保存文件 在”命令行模式”下,按一下”:”冒号键进入”Last line mode”;输入w filename 将文章以指定的文件名filename保存;输入wq存盘并退出vi。 三、实验小结、建议及体会 这次实验让对Linux操作系统有了初步的了解,我掌握了一些Linux系统常用的命令。

专题1:算法初步知识点及典型例题(原卷版)

专题1:算法初步知识点及典型例题(原卷版) 【知识梳理】 知识点一、算法 1.算法的概念 (1)古代定义:指的是用阿拉伯数字进行算术运算的过程。 (2)现代定义:算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。 (3)应用:算法通常可以编成计算机程序,让计算机执行并解决问题。 2.算法的特征: ①指向性:能解决某一个或某一类问题; ②精确性:每一步操作的内容和顺序必须是明确的;算法的每一步都应当做到准确无误,从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确.“前一步”是“后一步”的前提,“后一步”是“前一步”的继续. ③有限性:必须在有限步内结束并返回一个结果;算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行. ④构造性:一个问题可以构造多个算法,算法有优劣之分。 3.算法的表示方法: (1) 用自然语言表示算法: 优点是使用日常用语, 通俗易懂;缺点是文字冗长, 容易出现歧义; (2) 用程序框图表示算法:用图框表示各种操作,优点是直观形象, 易于理解。 注:泛泛地谈算法是没有意义的,算法一定以问题为载体。 例1.下面给出一个问题的算法: S1输入x; S2若x≤2,则执行S3;否则,执行S4; S3输出-2x-1; S4输出x2-6x+3. 问题: (1)这个算法解决的是什么问题? (2)当输入的x值为多大时,输出的数值最小? 知识点二:流程图 1. 流程图的概念:

流程图,是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符合表示操作的内容,流程线表示操作的先后次序。 2. 图形符号名称含义 开始/结束框 用于表示算法的开始与结束 输入/输出框 用于表示数据的输入或结果的输出 处理框描述基本的操作功能,如“赋值”操作、数学 运算等 判断框判断某一条件是否成立,成立时在出口处标明 “是”或“Y”;不成立时标明“否”或“N” 流程线 表示流程的路径和方向 连接点 用于连接另一页或另一部分的框图 注释框 框中内容是对某部分流程图做的解释说明 3. (1)使用标准的框图的符号; (2)框图一般按从上到下、从左到右的方向画; (3)除判断框图外,大多数框图符号只有一个进入点和一个退出点。判断框是具有超过一个退出点的唯一符号; (4)一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果; (5)在图形符号内描述的语言要非常简练清楚。 4.算法的三种基本逻辑结构: (1)顺序结构:由若干个按从上到下的顺序依次进行的处理步骤(语句或框)组成。这是任何一个算法都离不开的基本结构。 (2)条件结构:算法流程中通过对一些条件的判断,根据条件是否成立而取不同的分支流向的结构。它是依据指定条件选择执行不同指令的控制结构。 (3)循环结构:根据指定条件,决定是否重复执行一条或多条指令的控制结构称为循环结构。 知识点三:基本算法语句 程序设计语言由一些有特定含义的程序语句构成,与算法程序框图的三种基本结构相对应,任何程序设计语言都包含输入输出语句、赋值语句、条件语句和循环语句。以下均为BASIC

(完整版)武汉理工大学《电路分析(上)》课后简答题

1-1 实际电路器件与理想电路元件之间的联系和差别是什么? 答: (1)联系:理想电路元件是对实际电路器件进行理想化处理、忽略次要性质、只表征其主要电磁性质的所得出的模型。 (2)差别:理想电路元件是一种模型,不是一个实际存在的东西;一种理想电路元件可作为多种实际电路器件的模型,如电炉、白炽灯的模型都是“电阻”。 1-2 (1)电流和电压的实际方向是怎样规定的?(2)有了实际方向这个概念,为什么还要引入电流和电压的参考方向的概念?(3)参考方向的意思是什么?(4)对于任何一个具体电路,是否可以任意指定电流和电压的参考方向? 答: (1)电流的实际方向就是正电荷移动的方向;电压的实际方向(极性)就是电位降低的方向。 (2)对于一个复杂电路,电流、电压的实际方向事先难以确定,而交流电路中电流、电压的实际方向随时间变化,这两种情况下都无法准确标识电流、电压的实际方向,因此需要引入参考方向的概念。 (3)电流(或电压)参考方向是人为任意假定的。按电流(或电压)参考方向列有关方程,可解出电流(或电压)结果。若电流(或电压)结果数值为正,则说明电流(或电压)的实际方向与参考方向相同;若电流(或电压)结果数值为负,则说明电流(或电压)的实际方向与参考方向相反。 (4)可以任意指定电流和电压的参考方向。 1-3 (1)功率的定义是什么?(2)元件在什么情况下是吸收功率的?在什么情况下是发出功率的?(3)元件实际是吸收功率还是发出功率与电流和电压的参考方向有何关系? 答: (1)功率定义为单位时间内消耗(或产生)的能量,即 ()dW p t dt = 由此可推得,某二端电路的功率为该二端电路电压、电流的乘积,即 ()()()p t u t i t = (2)某二端电路的实际是吸收功率还是发出功率,需根据电压、电流的参考方向以及由()()()p t u t i t =所得结果的正负来综合判断,见下表 (3)元件实际是吸收功率还是发出功率与电流和电压的参考方向无关。

算法分析_实验报告3

兰州交通大学 《算法设计与分析》 实验报告3 题目03-动态规划 专业计算机科学与技术 班级计算机科学与技术2016-02班学号201610333 姓名石博洋

第3章动态规划 1. 实验题目与环境 1.1实验题目及要求 (1) 用代码实现矩阵连乘问题。 给定n个矩阵{A1,A2,…,A n},其中A i与A i+1是可乘的,i=1,2,…,n-1。考察这n 个矩阵的连乘积A1A2…A n。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,则可以依此次序反复调用2个矩阵相乘的标准算法(有改进的方法,这里不考虑)计算出矩阵连乘积。 确定一个计算顺序,使得需要的乘的次数最少。 (2) 用代码实现最长公共子序列问题。 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= < x1, x2,…, xm>,则另一序列Z= < z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列< i1, i2,…, ik>,使得对于所有j=1,2,…,k有Xij=Zj 。例如,序列Z=是序列X=的子序列,相应的递增下标序列为<2,3,5,7>。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X= < A, B, C, B, D, A, B>和Y= < B, D, C, A, B, A>,则序列是X和Y的一个公共子序列,序列也是X和Y的一个公共子序列。而且,后者是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。 (3) 0-1背包问题。 现有n种物品,对1<=i<=n,已知第i种物品的重量为正整数W i,价值为正整数V i,背包能承受的最大载重量为正整数W,现要求找出这n种物品的一个子集,使得子集中物品的总重量不超过W且总价值尽量大。(注意:这里对每种物品或者全取或者一点都不取,不允许只取一部分) 使用动态规划使得装入背包的物品价值之和最大。 1.2实验环境: CPU:Intel(R) Core(TM) i3-2120 3.3GHZ 内存:12GB 操作系统:Windows 7.1 X64 编译环境:Mircosoft Visual C++ 6 2. 问题分析 (1) 分析。

算法知识点总结

《算法设计与分析》知识点总结 1.算法的渐进时间复杂度分析,能够对给定的代码段(伪代码段)进行时间复杂度分析,能够对用关于问题规模n的函数表示的时间复杂度计算其渐进阶。 2.概念: 算法:通俗来讲,算法是指解决问题的方法或者过程,包括输入,输出,确定性,有限性。 1)子问题:结构性质与原问题相似的具有规模更小的问题。 2)可行解:满足某线性规划所有的约束条件(指全部前约束条件和后约束条件)的任意一组决策变量的取值,都称为该线性规划的一个可行解。 3)解空间:若齐次线性方程组有非零解,则其解有无穷多个,而齐次线性方程组所有解的集合构成一个向量空间,这个向量空间就称为解空间. 4)目标函数:指所关心的目标(某一变量)与相关的因素(某些变量)的函数关系。 5)最优解:使某线性规划的目标函数达到最优值(最大值或最小值)的任一可行解,都称为该线性规划的一个最优解。 6)最优化问题:一般是指按照给定的标准在某些约束条件下选取最优的解集,即使系统的某些性质能指标达到最大或最小。 7)递归算法:直接或者间接地调用自身的算法称为递归算法。

8)分治法:将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。递归地求出子问题的解,就可得到原问题的解。 9)动态规划:将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解,与分治法不同的,分解的子问题往往不是互相独立的。(为了避免指数时间,不管子问题的解会不会用到,都会填入到一个表中) 10)最优子结构性质:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。(动态规划和贪心都有) 11)重叠子问题性质:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了这种子问题的重叠性质,对每一个子问题只解一次,而后将其解保存在一个表格中,当再次需要此子问题时,只是简单地用常数时间查看一下结果。 12)备忘录算法:动态规划方法的变形。与动态规划算法不同的是,备忘录方法的递归方式是自顶向下的,而动态规划算法则是自底向上的。(其控制结构与递归方法是一样的,只是备忘录方法为每一个解过的子问题建立备忘录,以便需要时查看,避免相同子问题的重复求解) 13)贪心法:是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。 14)贪心选择性质:指所求问题的整体最优解可以通过一系列局部最优解的选择,即贪心选择来达到。 15)回溯法:是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这

算法分析实验报告--分治策略

《算法设计与分析》实验报告 分治策略 姓名:XXX 专业班级:XXX 学号:XXX 指导教师:XXX 完成日期:XXX

一、试验名称:分治策略 (1)写出源程序,并编译运行 (2)详细记录程序调试及运行结果 二、实验目的 (1)了解分治策略算法思想 (2)掌握快速排序、归并排序算法 (3)了解其他分治问题典型算法 三、实验内容 (1)编写一个简单的程序,实现归并排序。 (2)编写一段程序,实现快速排序。 (3)编写程序实现循环赛日程表。设有n=2k个运动员要进行网球循环赛。现 要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其它n-1个选手各赛一次(2)每个选手一天只能赛一场(3)循环赛进行n-1天 四、算法思想分析 (1)编写一个简单的程序,实现归并排序。 将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行 排序,最终将排好序的子集合合并成为所要求的排好序的集合。 (2)编写一段程序,实现快速排序。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有 数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数 据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据 变成有序序列。 (3)编写程序实现循环日赛表。 按分治策略,将所有的选手分为两组,n个选手的比赛日程表就可以通

过为n/2个选手设计的比赛日程表来决定。递归地用对选手进行分割, 直到只剩下2个选手时,比赛日程表的制定就变得很简单。这时只要让 这2个选手进行比赛就可以了。 五、算法源代码及用户程序 (1)编写一个简单的程序,实现归并排序。 #include #include #define MAX 10 using namespace std; void merge(int array[],int p,int q,int r) { int i,k; int begin1,end1,begin2,end2; int* temp = new int[r-p+1]; begin1 = p; end1 = q; begin2 = q+1; end2 = r; k = 0; while((begin1 <= end1)&&(begin2 <= end2)) { if(array[begin1] < array[begin2]) { temp[k] = array[begin1]; begin1++; } else { temp[k] = array[begin2]; begin2++; } k++; } while(begin1 <= end1) {

武汉理工操作系统实验报告(DOC)

学生学号0121110680125 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李帅 学生专业班级软件1101 2013 — 2014 学年第一学期

实验课程名称:操作系统 实验项目名称Linux键盘命令和vi实验成绩 实验者李帅专业班级软件工1101 组别 同组者实验日期 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) Linux键盘命令和vi 1.要求:掌握Linux系统键盘命令的使用方法 1. 使用mkdir命令建立一个子目录subdir 2. 使用cat或more命令查看file1文件的内容。 3. 将date命令的用法附加到文件file1的后面: 4. 利用ls -l file1命令列出文件file1的较详细的信息。 5. 利用rm fa命令将文件fa删除。再利用ls -l命令查看工作目录内容。 6. 运行mv file1 file_a命令,然后用ls命令查看这两个文件是否都还在工作目录中 2.vi操作 1.了解vi编辑器的作用和功能 2.熟悉vi的操作环境和切换方法 3.掌握vi操作的方式(几个常用键) 4.了解常用的快捷键 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) VI编辑器的常见命令: vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 键盘命令: 1. cat,more,less命令 2. Is命令 3. cp命令 4. rm命令 5. mv命令 VI命令: 1.vi进入vi缓冲区 2.vi file1:进入文件file1 3.退出vi

武汉理工大学算法分析实验报告

学生实验报告书 实验课程名称算法设计与分析开课学院计算机科学与技术学院 指导教师姓名李晓红 学生姓名 学生专业班级软件工程zy1302班2015-- 2016学年第一学期

实验课程名称:算法设计与分析 同组者实验日期2015年10月20日第一部分:实验分析与设计 一.实验内容描述(问题域描述) 1、利用分治法,写一个快速排序的递归算法,并利用任何一种语言,在计算机上实现,同时 进行时间复杂性分析; 2、要求用递归的方法实现。 二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 本次的解法使用的是“三向切分的快速排序”,它是快速排序的一种优化版本。不仅利用了分治法和递归实现,而且对于存在大量重复元素的数组,它的效率比快速排序基本版高得多。 它从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素都小于v,一个指针gt 使得a[gt+1..hi]中的元素都大于v,一个指针i使得a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定,如下图所示: public class Quick3way { public static void sort(Comparable[] a, int lo, int hi) { if (lo >= hi) return; int lt = lo, i = lo + 1, gt = hi; Comparable pivot = a[lo];

第二部分:实验调试与结果分析 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 1、调试方法描述: 对程序入口进行断点,随着程序的运行,一步一步的调试,得到运行轨迹; 2、实验数据: "R", "B", "W", "W", "R", "W", "B", "R", "R", "W", "B", "R"; 3、实验现象: 4、实验过程中发现的问题: (1)边界问题: 在设计快速排序的代码时要非常小心,因为其中包含非常关键的边界问题,例如: 什么时候跳出while循环,递归什么时候结束,是对指针的左半部分还是右半部分 排序等等; (2)程序的调试跳转: 在调试过程中要时刻记住程序是对那一部分进行排序,当完成了这部分的排序后, 会跳到哪里又去对另外的那一部分进行排序,这些都是要了然于心的,这样才能准 确的定位程序。 二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 1、实验结果:

武汉理工大学计算机网络实验报告

学生学号0121210680117 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称《计算机网络》 开课学院计算机科学与技术学院 指导老师姓名周兰采 学生姓名柏扬 学生专业班级软件1201 2013 —2014 学年第二学期

实验课程名称:计算机网络 实验项目名称获取网卡的MAC地址实验成绩 实验者专业班级组别 同组者实验日期 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验内容:编程获取以太网适配器的MAC地址。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) 实验原理: 在系统的cmd命令提示符中,我们输入ipconfig/all就可以看到本机上所有的适配器的具体内容如媒体状态、连接特定的DNS后缀、描述、物理地址、DHCP 已启用、自动配置已启用信息。本实验是运用匹配的思想,先通过,在寻找匹配字符串物理地址,找到了就将:后面位置的内容赋值给mac,作为MAC地址,然后再主函数中输出即可。

实验代码如下: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SystemTool { /** *@return mac地址 */ public static String getWindowsMACAddress() { String mac = null; BufferedReader bufferedReader = null; Process process = null; try { process = Runtime.getRuntime().exec("ipconfig /all");// windows 下的命令,显示信息中包含有mac地址信息 bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null;

算法设计与分析复习题整理 (1)

一、基本题: 算法: 1、程序是算法用某种程序设计语言的具体实现。 2、算法就是一组有穷的序列(规则) ,它们规定了解决某一特定类型问题的一系 列运算。 3、算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。 4、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。 5、算法满足的性质:输入、输出、确定性、有限性。 6、衡量一个算法好坏的标准是时间复杂度低。 7、算法运行所需要的计算机资源的量,称为算法复杂性,主要包括时间复杂性和 空间复杂性。 8、任何可用计算机求解的问题所需的时间都与其规模有关。 递归与分治: 9、递归与分治算法应满足条件:最优子结构性质与子问题独立。 10、分治法的基本思想是首先将待求解问题分解成若干子问题。 11、边界条件与递归方程是递归函数的两个要素。 12、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。 13、将一个难以直接解决的大问题,分解成一些规模较小的相同问题,以便各个击 破。这属于分治法的解决方法。 14、Strassen矩阵乘法是利用分治策略实现的算法。 15、大整数乘积算法是用分治法来设计的。 16、二分搜索算法是利用分治策略实现的算法。 动态规划: 17、动态规划算法的两个基本要素是最优子结构性质和重叠子问题性质。 18、下列算法中通常以自底向上的方式求解最优解的是动态规划法。 19、备忘录方法是动态规划算法的变形。 20、最优子结构性质是贪心算法与动态规划算法的共同点。 21、解决0/1背包问题可以使用动态规划、回溯法,其中不需要排序的是动态规 划,需要排序的是回溯法。

贪心算法: 22、贪心算法总是做出在当前看来最好的选择。也就是说贪心算法并不从整体 最优考虑,它所做出的选择只是在某种意义上的局部最优解。 23、最优子结构性质是贪心算法与动态规划算法的共同点。 24、背包问题的贪心算法所需的计算时间为 O(nlogn) 。 回溯法: 25、回溯法中的解空间树结构通常有两种,分别是子集树和排列树。(3) 26、回溯法搜索解空间树时,常用的两种剪枝函数为约束函数和限界函数。 27、解决0/1背包问题可以使用动态规划、回溯法,其中不需要排序的是动态规 划,需要排序的是回溯法。 28、使用回溯法进行状态空间树裁剪分支时一般有两个标准:约束条件和目标函数 的界,N皇后问题和0/1背包问题正好是两种不同的类型,其中同时使用约束条件和目标函数的界进行裁剪的是 0/1背包,只使用约束条件进行裁剪的是 N 皇后问题。 29 用搜索算法解旅行售货员问题时的解空间树是排列树。 30 回溯法搜索状态空间树是按照深度优先遍历的顺序。 31、回溯法算法是以深度优先策略进行搜索的。 32、0-1背包问题的回溯算法所需的计算时间为 O(n2n) 分支限界法: 33、以广度优先搜索或以最小耗费(最大效益)优先的方式搜索问题解的算法称 为分支限界法。 34、分支限界法主要有队列式(FIFO)分支限界法和优先队列式分支限界法。 35、分支限界法解旅行售货员问题时,活结点表的组织形式是最小堆。 其他: 36、10000*n^2+10*n+1的时间复杂度是______。 37、f(n)=n^2+10*n+1000000的时间复杂度是______。 38、算法分析中,记号O表示渐进上界。 39、f(n)= 6×2n+n2,f(n)的渐进上界是 O(2^n)。 40、f(n)= 6×2n+n2,f(n)的渐进上界是 O(n^2)。 41、f(n)= 100×3n+10000×n2,f(n)的渐进上界是_____________。 42、f(n)= 6×4n+n2,f(n)的渐进上界是 O(2^n) 。 43、按照渐近阶从低到高的顺序排列下列表达式:4n2,logn,3n, n2/3,n!,2n。 Logn< n2/3<4n2<2n<3n

算法设计与分析实验报告

本科实验报告 课程名称:算法设计与分析 实验项目:递归与分治算法 实验地点:计算机系实验楼110 专业班级:物联网1601 学号:2016002105 学生:俞梦真 指导教师:郝晓丽 2018年05月04 日

实验一递归与分治算法 1.1 实验目的与要求 1.进一步熟悉C/C++语言的集成开发环境; 2.通过本实验加深对递归与分治策略的理解和运用。 1.2 实验课时 2学时 1.3 实验原理 分治(Divide-and-Conquer)的思想:一个规模为n的复杂问题的求解,可以划分成若干个规模小于n的子问题,再将子问题的解合并成原问题的解。 需要注意的是,分治法使用递归的思想。划分后的每一个子问题与原问题的性质相同,可用相同的求解方法。最后,当子问题规模足够小时,可以直接求解,然后逆求原问题的解。 1.4 实验题目 1.上机题目:格雷码构造问题 Gray码是一个长度为2n的序列。序列无相同元素,每个元素都是长度为n的串,相邻元素恰好只有一位不同。试设计一个算法对任意n构造相应的Gray码(分治、减治、变治皆可)。 对于给定的正整数n,格雷码为满足如下条件的一个编码序列。 (1)序列由2n个编码组成,每个编码都是长度为n的二进制位串。 (2)序列中无相同的编码。 (3)序列中位置相邻的两个编码恰有一位不同。 2.设计思想: 根据格雷码的性质,找到他的规律,可发现,1位是0 1。两位是00 01 11 10。三位是000 001 011

010 110 111 101 100。n位是前n-1位的2倍个。N-1个位前面加0,N-2为倒转再前面再加1。 3.代码设计:

武汉理工大学 统计学 学生实验报告书

实验报告

3,在对话框中选择描述统计、选择确定 4,在对话框的输入区域输入试验项目的数据范围A2:A31,在输出区域输入 D3,选择汇总统计,选择确定。 (三)动态数列长期趋势预测 1,进入Excel系统,输入实验项目的有关数据 2、建立直线趋势方程:Yc=a+bt,利用最小平方法计算a和b的参数 3、将参数代入直线趋势方程,Yc=a+bt,预测所需年份的产量 (四)抽样调查区间估计(从一批灯泡中随即抽取40只进行检查,并对该批全部 灯泡的平均使用时间的可能范围) 1、进去Excel系统,输入实验项目的全部数据,输入计算指标、计算公式 2、利用各公式计算相应的指标 3、利用区间估计的方法计算区间估计 五、原始数据记录 (一)制作次数分布图表(直方图) 某班40名学生考试成绩如下(单位:分) 成绩:66 45 99 56 88 99 84 81 76 94 79 77 99 82 65 73 74 77 98 65 60 79 67 66 82 97 59 83 60 78 72 63 89 95 84 79 86 78 98 87 答:首先,打开Excel并新建一个工作簿,输入试验项目的所有数据;然后,点击工具菜单栏的【数据】,并选择【数据分析】;再在对话框中选择【直方图】并点击确定;然后,在对话框的【输入区域】输入试验项目的数据范围(A2:A41),在【接收区域】输入分组的范围(B2:B6),在【输出区域】输入D2,并勾选【累计百分比】和【输出图表】,点击确定。最后得到次数分布图表如下图所示: 图1 在Excel中制作次数分配图表 由上述图表可知,该班学生考试成绩在50分及以下的有1人,50分(不包含50分)到60分(包含60分)之间的有4人,60分(不包含60分)到70分(包含70分)之间的有6人,70分(不包含70分)到80分(包含80分)之间的有11人,80分(不包含80分)到90(包含90分)分之间的有10人,90分以上的有8人。 (二)计算描述统计量(某煤矿6月份的燃煤产量,单位:万吨) 30个产量的原始数据如下: 产量:2010 2200 2400 1965 2010 2025 2042 2050 2080 2101 2103 2130 2152 2193 1100 2230 2280 2282 2300 2338 2342 2345 2361 2382 2390 2424 2450 1560 1980 1900

算法分析与设计知识点总结

第一章概述 算法的概念:算法是指解决问题的一种方法或过程,是由若干条指令组成的有穷序列。 算法的特征: 可终止性:算法必须在有限时间内终止; 正确性:算法必须正确描述问题的求解过程; 可行性:算法必须是可实施的; 算法可以有0个或0个以上的输入; 算法必须有1个或1个以上的输出。 算法与程序的关系: 区别:程序可以不一定满足可终止性。但算法必须在有限时间内结束; 程序可以没有输出,而算法则必须有输出; 算法是面向问题求解的过程描述,程序则是算法的实现。 联系:程序是算法用某种程序设计语言的具体实现; 程序可以不满足算法的有限性性质。 算法描述方式:自然语言,流程图,伪代码,高级语言。 算法复杂性分析: 算法复杂性的高低体现运行该算法所需计算机资源(时间,空间)的多少。 算法复杂性度量: 期望反映算法本身性能,与环境无关。 理论上不能用算法在机器上真正的运行开销作为标准(硬件性能、代码质量影响)。 一般是针对问题选择基本运算和基本存储单位,用算法针对基本运算与基本存储单位的开销作为标准。 算法复杂性C依赖于问题规模N、算法输入I和算法本身A。即C=F(N, I, A)。 第二章递归与分治 分治法的基本思想: 求解问题算法的复杂性一般都与问题规模相关,问题规模越小越容易处理。 分治法的基本思想是,将一个难以直接解决的大问题,分解为规模较小的相同子问题,直至这些子问题容易直接求解,并且可以利用这些子问题的解求出原问题的解。各个击破,分而治之。 分治法产生的子问题一般是原问题的较小模式,这就为使用递归技术提供了方便。递归是分治法中最常用的技术。 使子问题规模大致相等的做法是出自一种平衡(balancing)子问题的思想,它几乎总是比子问题规模不等的做法要好。 分治法所能解决的问题一般具有以下几个特征: 该问题的规模缩小到一定的程度就可以容易地解决; 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; 利用该问题分解出的子问题的解可以合并为该问题的解; 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。(这条特征涉及到分治法的效率,如果各子问题是不独立的,则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然也可用分治法,但一般用动态规划较好。) 递归的概念:

大数据结构与算法设计知识点

数据结构与算法设计知识点 试题类型: 本课程为考试科目(闭卷笔试),试题类型包括:概念填空题(10 %),是非判断题(10 %),单项选择题(40 %),算法填空题(10%),算法应用题(20 %),算法设计题(10 %)。 第一章绪论 重点容及要求: 1、了解与数据结构相关的概念(集合、数据、数据元素、数据项、关键字、元 素之间的关系等)。 数据:所有能被输入到计算机中,且能被计算机处理的符号的 集合。是计算机操作的对象的总称。是计算机处理的信息的某种特定 的符号表示形式。 数据元素:是数据(集合)中的一个“个体”,数据结构中的基 本单位,在计算机程序常作为一个整体来考虑和处理。 数据项:是数据结构中讨论的最小单位,数据元素可以是一个或 多个数据项的组合 关键码:也叫关键字(Key),是数据元素中能起标识作用的数据 项。 其中能起到唯一标识作用的关键码称为主关键码(简称主码); 否则称为次关键码。通常,一个数据元素只有一个主码,但可以有多 个次码。 关系:指一个数据集合中数据元素之间的某种相关性。 数据结构:带“结构”的数据元素的集合。这里的结构指元素之 间存在的关系。 数据类型:是一个值的集合和定义在此集合上的一组操作的总

称。 2、掌握数据结构的基本概念、数据的逻辑结构(四种)和物理结构(数据元素 的表示与关系的表示、两类存储结构:顺序存储结构和链式存储结构)。 数据结构包括逻辑结构和物理结构两个层次。 数据的逻辑结构:是对数据元素之间存在的逻辑关系的一种抽象的描述,可以用一个数据元素的集合和定义在此集合上的若干关系来表示 逻辑结构有四种:线性结构、树形结构、图状结构、集合结构数据的物理结构:是其逻辑结构在计算机中的表示或实现,因此又称其为存储结构。 存储结构:顺序存储结构和链式存储结构 顺序存储结构:利用数据元素在存储器中相对位置之间的某种特定的关系来表示数据元素之间的逻辑关系; 链式存储结构:除数据元素本身外,采用附加的“指针”表示数据元素之间的逻辑关系。 3、了解算法分析的基本方法,掌握算法时间复杂度相关的概念。 算法:是为了解决某类问题而规定的一个有限长的操作序列 或处理问题的策略 一个算法必须满足以下五个重要特性:1.有穷性2.确定性3.可行性4.有输入 5.有输出 设计算法时,通常还应考虑满足以下目标: 1.正确性, 2.可读性, 3.健壮性 4.高效率与低存储量需求

相关主题
文本预览
相关文档 最新文档