20172321 2018-2019-1 《程序设计与数据结构》实验三报告

20172321 2018-2019-1 《程序设计与数据结构》实验三报告

  • 课程:《程序设计与数据结构》
  • 班级: 1723
  • 姓名: 吴恒佚
  • 学号:20172321
  • 实验教师:王志强
  • 实验日期:2018年11月19日
  • 必修/选修: 必修

一、实验内容

实验三-查找与排序-1

  • 定义一个Searching和Sorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试。
  • 要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
  • 提交运行结果图。

实验三-查找与排序-2

  • 重构你的代码
  • 把Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1723.G2301)
  • 把测试代码放test包中
  • 重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)

实验三-查找与排序-3

  • 参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试
  • 提交运行结果截图

实验三-查找与排序-4

  • 补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
  • 测试实现的算法(正常,异常,边界)
  • 提交运行结果截图

实验三-查找与排序-5(选做,加分)

  • 编写Android程序对各种查找与排序算法进行测试
  • 提交运行结果截图
  • 推送代码到码云

二、实验过程及结果

实验1

  • 实验3_1的要求不是很麻烦,代码也是之前基本上都有了的,就是Junit好久没用过了,差不多勉勉强强还是可以写出来个大概。
  • 测试正常,异常,边界,正序,逆序五种情况
结果

1333060-20181208225309391-393055020.png

1333060-20181208225319471-1922758876.png

1333060-20181208225327650-988802336.png

1333060-20181208225336465-1889116006.png

代码码云

实验2

  • 实验3_2是真的烦躁,要求我也不是很懂,放来放去的,不知道往哪里放,以前好像建立过专门的test包,我找到了当年的蓝墨云和当时的参考博客,然后一步一步做出来了。
  • 在命令行上测试,好像不能用JUnit那个了,只有重写了个简单的测试方法,然后拉到虚拟机上去测试。
结果

1333060-20181208225354109-1490291181.jpg

1333060-20181208225405561-1948054994.jpg

实验3

  • 过得太久了,我都有点忘了,我是用了直线查找Searching、折半查找binarySearch、插值查找InsertionSearch、斐波那契查找FibonacciSearch、分块查找blockSearch、哈希查找hashSearch
结果

1333060-20181208225418030-1741922134.png

1333060-20181208225425714-1301956296.png

1333060-20181208225432289-1273659059.jpg

1333060-20181208225439994-75363694.png

1333060-20181208225447114-1869322067.png

1333060-20181208225453346-240651108.png

1333060-20181208225459370-1793442854.png

1333060-20181208225506786-1543208066.png

实验4

  • 用了Sorting、希尔排序shellsort、二叉树排序binarytreeSort、堆排序heapSort、桶排序bucketSort
结果

1333060-20181208225514929-673350105.png

1333060-20181208225524209-95230395.jpg

1333060-20181208225530360-242164712.png

1333060-20181208225544166-975594438.png

1333060-20181208225535069-388354670.png

三、实验过程中遇到的问题和解决过程

  • 问题1:我本来以为Integer和Int差不多的,后来发现居然是不一样的,我不得不定义两个数组在测试类里,因为书上的代码是Integer型但是我写的是Int型。
  • 解答:
    • (1)Integer是int的包装类;int是基本数据类型;
    • (2)Integer变量必须实例化后才能使用;int变量不需要;
    • (3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
    • (4)Integer的默认值是null;int的默认值是0。

1333060-20181208225551380-1316067821.png

四、感想

  • 确实有些忘记了,总之是学习了许多算法,复习了很多的知识,很有帮助就是了。

五、参考资料

转载于:https://www.cnblogs.com/N-idhogg/p/10089604.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值