爱吃的LC

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解决方案:后来发现是自己马虎了,我把最大值和最小值和所要的值的顺序弄错了,怪不得一直报错……

其他(感悟、思考等)

这次的实验主要就是让我们练习一下查找和排序,还有就是多接触了几种查找和排序的方法,拓展了我们的知识面,有一些需要根据网上对代码的解释才能够理解。但是收获还是很大的,老师还让利用虚拟机的命令行进行测试,这个也让我简单的回顾了一下以前的虚拟机。

参考资料《Java程序设计与数据结构教程(第二版)》学习指导

posted on 2018-12-03 17:07  爱吃的LC  阅读(223)  评论(0编辑  收藏  举报

导航