ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:268.02KB ,
资源ID:13365847      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13365847.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(报告上海交通大学网络教育课程Word格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

报告上海交通大学网络教育课程Word格式.docx

1、1. 验证实验1(折半查找) 31.1 实验目的 31.2 实验内容 31.3 算法思想、总体设计 31.4 算法设计 41.5 算法代码实现 51.6 代码测试 62. 验证实验2 (简单选择排序算法验证) 82.1 实验目的 82.2 实验内容 82.3 算法思想、总体设计 82.4 算法设计 82.5 算法代码实现 102.6 代码测试 113. 实验设计1 (直接插入排序基于单链表的实现) 133.1 实验目的 133.2 实验内容 133.3 算法思想、总体设计 133.4 算法设计 133.5 算法代码实现 153.6 代码测试 153.7 测试总结 17第三部分: 心得体会 17

2、分工角色参与人员完成任务简单描述姓名/学号联系方式项目经理略实验项目选择,实验进度把控;整体设计对整体流程进行设计,并设计整个实验所用的数据结构;算法设计对各种操作进行算法设计;代码编写根据算法进行编码及调试;测试对程序执行过程及结果进行测试;文档编写实验报告。实验报告1. 验证实验1(折半查找)1.1 实验目的1.1.1 掌握折半查找算法的基本思想;1.1.2 掌握折半查找算法的实现方法;1.1.3 掌握折半查找算法的时间性能。1.2 实验内容1.2.1 根据输入长度,生成一个升序排列的顺序表1.2.2 根据输入要查找的值,使用折半查找法(也叫二分查找法),使用递归算法进行查找。1.2.3

3、查询结果返回所在位置序号1.3 算法思想、总体设计1.3.1 结合同期课程,决定选用C#作为实验的工具语言。1.3.2 折半查找的操作对象为有序的顺序表,所以在试验中生成一个有序的数组作为实验对象。1.3.3 折半查找的算法思想是,将数列按有序化(递增或递减)排列,查找过程中先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元素必须有序。1.3.4 时间复杂度为O(log2n)1.3.5 折半查

4、找一般有3中算法,一般算法、递归算法、迭代算法,试验中选用递归算法作为实现方法。1.4 算法设计1.4.1 数据结构设计折半查找的对象要求是有序的顺序表,所以实验对象定义为一个有序的数组。/定义一个int型的数组,长度size由界面输入list1 = new intsize1.4.2 算法执行流程图1.4.2.1 顺序表的建立 1.4.2.2 折半查找算法(递归) 递归执行 否 是1.5 算法代码实现/初始化顺序表 public string initiatelist(int size) /size传递来的顺序表长度参数 string t = ; /把生成的顺序表返回至text中显示 list

5、1 = new intsize; int i; for (i = 0; i size; i+) /用循环生成升序的顺序表 list1i = i; if (i = size - 1) t = t + list1i.ToString(); else t = t + list1i.ToString() + , return (t);/对顺序表进行折半查找,使用递归算法/分别传递 r 数组首地址,low 查询的左边界,high 查询的右边界,key 所需查找的值 public string findsearch(int r, int low, int high, int Key) int mid =

6、(low + high) / 2; if (low high) if (Key = rmid) return findsearch(r, low, mid, Key); /递归执行 return findsearch(r, mid + 1, high, Key); else if (low = high) if (Key = rmid) return (low + 1).ToString(); /返回找到值的位置,比数组序号+1 return (无此数据!);1.6 代码测试1.6.1 测试方法采用黑盒测试方法进行测试1.6.2 测试数据准备着重准备数组首末边界的值以及不符合条件的值进行查找,

7、尽量试图发现bug错误。1.6.3 测试过程1 测试准备1) 输入所需顺序表长度2) 点击【生成有序数组】3) 返回生成的有序数组2 折半查找测试1) 输入要查找的值2) 点击【折半查找】按钮3) 在查找结果中核对结果1.6.4 测试总结测试的结果符合设计要求,测试了各种边界数据,都符合设计要求,没有出现任何错误。响应速度也符合算法的时间复杂度,没有出现速度慢等情况。2. 验证实验2 (简单选择排序算法验证)2.1 实验目的2.1.1 掌握简单选择排序算法的基本思想.2.1.2 掌握简单选择排序算法的实现方法.2.1.3 验证简单选择排序算法的时间性能.2.2 实验内容2.2.1 对一组数据进

8、行简单选择排序(按升序排列)2.2.2 为了更好理解单链表,这个实验使用单链表模型来操作。2.2.3 对无序的单链表进行选择排序(升序)2.3 算法思想、总体设计2.3.1 结合同期课程,决定选用C#作为实验的工具语言。2.3.2 采用单链表进行排序操作。2.3.3 简单选择排序的基本思想:对待排序的序列进行若干趟处理,通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录和第i(1in)个记录进行交换,这样一趟处理就能确定一个数的位置,对n个数如果确定n-1个数的位置,则这n个数就排序成功。2.3.4 选择排序的算法的时间复杂度为 O(n2)。并且排序是稳定的2.4 算法设计2.

9、4.1 数据结构设计使用一个单链表作为选择排序的操作对象/单链表结构体定义 class SingleLink private int idata; public int Data get return idata; set idata = value; public SingleLink next; public SingleLink() idata = -1; next = null; public SingleLink(int data) idata = data;2.4.2 算法执行流程图2.4.2.1 初始化单链表2.4.2.2 简单选择排序i+2.5 算法代码实现2.5.1 单链表初

10、始化Random r = new Random(); /从1-100之间产生数 list.clear(); /单链表清空 for (int i = 0; dlblong; i+) /根据所需长度,循环插入单链表节点 list.Insert(r.Next(100); /节点插入操作 f+; textBox1.Text = list.Display(); /返回整个单链表显示2.5.2 单链表选择排序 y = head; flag = head.next; int n = 0, i, j, temp = 0, biaoji; y = head.next; p = head.next; q = he

11、ad.next; n - 1; i+) /第一层循环 flag = p; q = p; biaoji = q.Data; for (j = i; j j+) if (q.next.Data biaoji) /内循环查找出未排序中的最小值 flag = q.next; biaoji = q.next.Data; q = q.next; temp = p.Data; /数据交换 p.Data = flag.Data; flag.Data = temp; p = p.next; return (true);2.6 代码测试2.6.1 测试方法2.6.2 测试数据准备各种排序方式下的排序结果情况,主要

12、检查单链表指针是否有错误定位2.6.3 测试过程1) 输入所需单链表长度2) 点击【随机生成单链表】3) 返回生成的单链表结果4) 点击【选择排序】按钮5) 在结果序列中,显示排序完成后的单链表生成单链表选择排序并显示结果2.7 测试总结测试的结果符合设计要求,多次生成不同长度的单链表,进行选择排序后所有结果都符合设计要求,没有出现任何单链表操作容易产生的指针溢出等问题。软件运行正常。3. 实验设计1 (直接插入排序基于单链表的实现)3.1 实验目的3.1.1 熟悉单链表的生成、插入、删除等操作3.1.2 熟悉基于单链表的直接插入算法3.1.3 熟悉使用指针交换单链表位置的方法3.2 实验内容3.2.1 单链表的生成、删除、插入等操作3.2.2 对无需单链表使用直接插入排序3.2.3 对无序的单链表进行选择排序(升序)3.3 算法思想、总体设计3.3.1 结合同期课程,决定选用C#作为实验的工具语言。3.3.2 直接插入算法过程藐视,将单链表划分为有序区和无序区,有序区只包含一个元素结点,依次取无序区中的每一个结点,在有序区中查找待插入结点的插入位置

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1