20182331 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

课程:《程序设计与数据结构》 班级: 1823
姓名: 高宽让
学号:20182331
实验教师:王志强
实验日期:2019年11月2日
必修/选修: 必修

一、实验内容

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

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

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

4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
测试实现的算法(正常,异常,边界)
提交运行结果截图(如果编写多个排序算法,即使其中三个排序程有瑕疵,也可以酌情得满分)

5.编写Android程序对实现各种查找与排序算法进行测试
提交运行结果截图
推送代码到码云(选做,加分)

二、 实验过程及结果






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

问题一:调用队列头的数据时,出现了空指针报错。
问题一解决方法:重新编辑驱动代码,确认调用无误值已初始化。

问题二:在完成实验四时对希尔排序理解不够深入,对于它和间隔排序法的区别认识也不够深刻。
问题二解决过程:希尔排序就是将数字序列按照一定的间隔分成许多个子序列,在子序列中进行插入排序,然后在合并成一个数字序列;然后再去减小间隔长度,周而复始,最终等到间隔为1的时候就实现了有序;间隔排序做的是从最开始元素开始,对这些元素,把大的放在后面,一次排序后,间隔为该距离的元素构成的集合不一定有序。

四、 其他(感悟、思考等)

查找与排序是最为基本的数据结构算法,一个程序执行能力的高低取决于是否采用了一个好的算法,而一个好算法又很能考验程序员的功力,在这方面,我还有很长的路要走。

参考资料

posted @ 2019-11-17 11:49  20182331  阅读(157)  评论(0编辑  收藏  举报