zoukankan      html  css  js  c++  java
  • 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程序设计与数据结构教程(第二版)》学习指导

  • 相关阅读:
    大型项目使用Automake/Autoconf完成编译配置
    用C语言编写Windows服务程序的五个步骤
    RPC的发展历史(本质就是双方定义好协议,传递参数后远程调用)
    libuv和libev 异步I/O库的比较
    zlog 程序日志的库 交叉编译(Linux生成ARM库,观察执行步骤)
    应用服务
    EvnetBus
    this指向
    CPU使用率
    数据量小,创建索引有必要吗
  • 原文地址:https://www.cnblogs.com/lc1021/p/9998808.html
Copyright © 2011-2022 走看看