20182324 2019-2020-1 《数据结构与面向对象程序设计》实验7报告
课程:《程序设计与数据结构》
班级: 1823
姓名: yyh
学号: 20182324
实验教师:王志强
实验日期:2019年10月30日
必修/选修: 必修
1.实验内容
-
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 程序对实现各种查找与排序算法进行测试
提交运行结果截图
推送代码到码云(选做,加分)
2. 实验过程及结果
-
(1)定义一个 Searching 和 Sorting ,并在类中实现 linearSearch , SelectionSort 方法,最后完成测试。
-
(2)重构代码,把 Sorting.java Searching.java 放入 cn.edu.besti.cs1823.(姓名首字母+四位学号)
IDEA:
命令行:
-
(3)学习各种查找算法并在 Searching 中补充查找算法并测试
-
(4)补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等
-
(5)选做未做
3. 实验过程中遇到的问题和解决过程
-
问题1:命令行 javac 编译提示 “ Note: Some input files use unchecked or unsafe operations. Recompile with Xlint:unchecked for details. ”
-
问题1解决方案:Xlint 将提供有关 Java 语言规范要求的未经检查的转换警告的更多详细信息,出现原因可能有:(1)源代码中有未使用的import(2)源代码中有未加模板的Collection(s)(3)源代码中有未加serialVersionUID的serializable类。如果不想看见这些信息,可以在编译时使用
-Xlint:none
参数。 -
问题2:Java 包的定义是什么
-
问题2解决方案:包是 Java 中有效管理类的一个机制,不同 Java 源文件中可能出现名字相同的类,如果想区分这些类,就需要通过包这个概念。包名的目的是有效地区分名字相同的类,当 Java 中源文件中的两个类的名字相同时,它们可以通过隶属于不同的包来相互进行区分。
包语句的定义:package + 空格 + 包名。包名可以是一个标识符,也可以是多个标识符通过 “.” 运算符连接,如 cn.edu.besti.cs1823,在文件夹中一个 “.” 运算符对应一个子目录层级,即 cn.edu.besti.cs1823 的相对路径为 cn/edu/besti/cs1823 -
问题3:命令行怎么编译包里的 java 文件
-
问题3解决方案:javac 编译时可直接跟包名,如
javac -g -d bin cn.edu.besti.cs1823.test.java
,也可跟路径,如javac -g -d bin cn/edu/besti/cs1823/test.java
其他(感悟、思考等)
查找与排序是最为基本的数据结构算法,一个程序执行能力的高低完全取决于是否采用了一个好的算法,在算法的学习与使用方面还要多加努力。