20172306 2018-2019-2 《程序设计与数据结构》实验三报告
20172306 2018-2019-2 《程序设计与数据结构》实验三报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 刘辰
学号:20172306
实验教师:王志强
实验日期:2018年11月22日
必修/选修: 必修
1.实验内容
第一个实验
- 定义一个Searching和Sorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试。
要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
提交运行结果图。
第二个实验
- 重构你的代码
把Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1723.G2301)
把测试代码放test包中
重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)
第三个实验
- 参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试
提交运行结果截图
第四个实验
- 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
测试实现的算法(正常,异常,边界)
提交运行结果截图
第五个实验
编写Android程序对各种查找与排序算法进行测试
提交运行结果截图
推送代码到码云
2. 实验过程及结果
第一个实验
-
这两个类都是之前编写过的或者是书中有的,然后我们通过这个类进行JUint测试
-
测试结果
第二个实验
-
简单的对代码进行了重构,现在不用JUint,对第一个实验进行普通测试
-
利用虚拟机,命令行进行测试
第三个实验
- 对几种查找进行填充及测试
第四个实验
- 对几种排序进行填充及测试
第五个实验
- 在AndroidStudio中进行排序和查找的实现
3. 实验过程中遇到的问题和解决过程
• 问题1:再进行排序实验的时候,实验的结果出现了这样
• 问题1解决方案:我就发现为什么出现了两次,就很迷茫,后来我又看了一遍二叉树排序的代码,知道了问题,并进行了改正
• 问题2:在进行查找操作时,在折半查找那里,出现了失误,我检查了代码,发现也没什么问题啊,怎么回事嘞?
public static int InsertionSearch(int[] a, int low, int high,int value) {
int mid;
mid = low + (value - a[low]) / (a[high] - a[low]) * (high - low);
if (a[mid] == value)
return mid;
if (a[mid] > value)
return InsertionSearch(a, value, low, mid - 1);
else
return InsertionSearch(a, value, mid + 1, high);
}
• 问题2解决方案:后来发现是自己马虎了,我把最大值和最小值和所要的值的顺序弄错了,怪不得一直报错……
其他(感悟、思考等)
这次的实验主要就是让我们练习一下查找和排序,还有就是多接触了几种查找和排序的方法,拓展了我们的知识面,有一些需要根据网上对代码的解释才能够理解。但是收获还是很大的,老师还让利用虚拟机的命令行进行测试,这个也让我简单的回顾了一下以前的虚拟机。