20172319 实验三《查找与排序》实验报告
课程名称:《程序设计与数据结构》
学生班级:1723班
学生姓名:唐才铭
学生学号:20172319
实验教师:王志强老师
课程助教:张师瑜学姐、张之睿学长
实验时间:2018年11月19日——2018年11月25日
必修/选修:必修
目录
- 实验内容
- 实验要求
- 实验步骤
- 代码实现及解释
- 测试过程及遇到的问题
- 分析总结
- 代码托管
- 参考资料
实验内容
- 实验三-查找与排序-1: 定义一个Searching和Sorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试。
- 实验三-查找与排序-2: 重构你的代码。
- 实验三-查找与排序-3: 在Searching中补充查找算法并测试。
- 实验三-查找与排序-4: 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)。
- 实验三-查找与排序-5(选做,加分): 编写Android程序对各种查找与排序算法进行测试。
返回目录
实验要求
- 完成蓝墨云上与实验二《树》相关的活动,及时提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分。
- 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导。
- 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
返回目录
实验步骤
- 实验三-查找与排序-1:
定义一个Searching和Sorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试。
要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
提交运行结果图。
(2分) - 实验三-查找与排序-2:
重构你的代码
把Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1723.G2301)
把测试代码放test包中
重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)
(2分) - 实验三-查找与排序-3:
参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试
提交运行结果截图
(3分) - 实验三-查找与排序-4:
补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
测试实现的算法(正常,异常,边界)
提交运行结果截图
(3分,如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分) - 实验三-查找与排序-5(选做,加分):
编写Android程序对各种查找与排序算法进行测试
提交运行结果截图
推送代码到码云
(加分3,加到实验中)
前期准备:
- 预先下载安装好IDEA 。
需求分析:
- 需要了解各种查找及排序算法的相关知识;
- 需要理解掌握各种查找及排序算法的相关实现;
返回目录
代码实现及解释
本次实验一共分为五个提交点:
- 实验三-查找与排序-1:
- 要实现的方法有:
linearSearch
;SelectionSort
; linearSearch
具体代码如下:
public static Comparable linearSearch(Comparable[] data,Comparable target){int index = 0;Comparable result = null;while (result==null && index < data.length){if (data[index].compareTo(target)==0){result = data[index];}else {index++;}}return result;}
SelectionSort
具体代码如下:
public static <T extends Comparable<T>> String selectionSort(int[] data){int min;T temp;for (int index = 0; index < data.length-1; index++){min = index;for (int scan = index+1; scan < data.length; scan++) {if (data[scan]<data[min]) {min = scan;}}swap(data, min, index);}String result = "";for (int num : data){result += num + " ";}return result;}
实现结果截图:
- 实验三-查找与排序-2:
实现很简单,只是换个包重构而已。
实现结果截图:实验时测试案例代码写错了,打印会造成误解,蓝墨云已给出正确的打印结果,以下只展示部分结果。
实验三-查找与排序-3:
- 补充的查找算法有:二分查找;插值查找;斐波那契查找;树表查找;分块查找;哈希查找。
实现结果截图:
实验三-查找与排序-4:
补充的排序算法:希尔排序;堆排序;二叉树排序;插入排序;冒泡排序;归并排序;快速排序。
运行结果截图:
- 实验三-查找与排序-5:
- 实现结果截图:仅展示部分截图
返回目录
测试过程及遇到的问题
- 问题1: 无任何记录。
- 解决:
返回目录
分析总结
返回目录
代码托管
- 测试类
- 具体代码类
返回目录
参考资料
Intellj IDEA 简易教程
返回目录
转载于:https://www.cnblogs.com/Tangcaiming/p/10093263.html
20172319 实验三《查找与排序》实验报告相关推荐
- 2017-2018-1 20162316刘诚昊 实验三 查找与排序
20162316刘诚昊 2017-2018-2 <Java程序设计>第三次实验 查找与排序 实验链接: 实验三 查找与排序-1 实验二 查找与排序-2 实验二 查找与排序-3 实验二 查找 ...
- 实验四 查找和排序算法实现
广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 学院 计算机科学与网络工程学院 实验课程 数据结构实验 实验项目 实验四 查找和排序算法实现 一.实验目的: 1.各种排序算法 ...
- 数据库原理实验三 数据库综合设计实验 实验报告
实验三 数据库系统设计综合实验 1.实验目的通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统. 2.实验要求熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的 ...
- 基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...
20183411 李丞灏 2020-2021 <python程序设计> 实验三 加密传输文件 实验报告 课程:<Python程序设计> 班级: 1834 姓名: 李丞灏 学号: ...
- 201671010460朱艺璇 实验三作业互评与改进报告
实验三 作业互评与改进报告. 课程名称:2016级计算机科学与工程学院软件工程(西北师范大学) 作业要求链接: 实验三 任务一. 点评作业地址和点评内容: [北京航空航天大学)](https://ww ...
- linux系统进程调度算法实验,操作系统实验三、进程调度算法实验
实验三.进程调度算法实验 3.1 实验目的 加深对进程调度概念的理解,体验进程调度机制的功能,了解Linux 系统中进程 调度策略的使用方法.练习进程调度算法的编程和调试技术. 3.2 实验说明 在 ...
- 计算机网络实验三—— Cisco Packet Tracer 实验
计算机网络实验三-- Cisco Packet Tracer 实验 CPT 软件使用简介 一.直接连接两台 PC 构建 LAN 二.用交换机构建 LAN 机器名 IP 子网掩码 ✎ 问题 ✎ 试一试 ...
- 实验三 ORI指令设计实验【计算机组成原理】
实验三 ORI指令设计实验[计算机组成原理] 前言 推荐 实验三 ORI指令设计实验 一.实验目的 二.实验环境 三.实验原理 四.实验任务 五.实验思考 实验三 代码 define IF ID EX ...
- 计算机组成原理微控器功能,(计算机组成原理)实验三微控器实验.ppt
文档介绍: 计算机组成原理课程设计 实验三.微控器实验 葛扩院廖萝丽斯节宽裔萌宛敢蜘祭癌颂导罪仍囚誓棋尹侈速爹详凑移悸董(计算机组成原理)实验三微控器实验(计算机组成原理)实验三微控器实验 实验三微控 ...
- bpsk传输系统实验matlab,实验三 BPSK 传输系统综合实验 2
通信原理实验 实验三 BPSK 传输系统综合实验 一.实验原理 (一)BPSK调制 理论上二进制相移键控(BPSK)可以用幅度恒定,而其载波相位随着输入信号m(1.0码)而改变,通常这两个相位相差18 ...
最新文章
- Linux tail 命令详解
- 微信小程序引入Vant组件库
- 以己之矛攻己之盾,腾讯做陌生人社交,意在抖音?
- day10 in india
- 单片机c语言实验,单片机实验C语言编程.doc
- Spring集成–从头开始应用程序,第2部分
- 开机预读快还是不预读快_WIN 7下的超级预读比VISTA要好,改进不少!推荐开启超级预读!...
- Linux下实现流水灯等功能的LED驱动代码及测试实例
- React Native初探
- 1./app/logs/ 里面的日志只保留7天的(apache每天生成一个文件)
- 计算机科学美国大学专业,2015年U.S.NEWS计算机科学专业美国大学排名
- apple/ios 获取udid
- 《Data Algorithm》读书笔记七 — 购物篮分析
- linux下puts和gets命令用法,puts()和gets()函数(示例代码)
- 获取当前格林威治时间
- 【技巧】vistual studio 2017 communty 版本许可证过期解决办法
- Android简单计时器
- zedgraph显示最小刻度_ZedGraph 控件各属性以及示例
- [转]高精度乘法计算
- linux内核机制之设备树