《数据结构与面向对象程序设计》实验7 报告
Posted lyz182329
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《数据结构与面向对象程序设计》实验7 报告相关的知识,希望对你有一定的参考价值。
学号 20182329 2019-2020-1 《数据结构与面向对象程序设计》实验7
报告
- 课程:《程序设计与数据结构》
- 班级: 1823
- 姓名: 李一卓
- 学号:20182329
- 实验教师:王志强
- 实验日期:2019年10月3日
- 必修/选修: 必修
1.实验内容
- 用链定义一串字符,学会链的构成和查找
- 学习顺序查找、二分法查找、差值查找,被学会在链或者数组的情况下实现。
- 学习斐波那契数列的查找方法,也是二分查找的一种提升算法,通过运用黄金比例的概念在数列中选择查找点进行查找,提高查找效率。
- 学习二叉树的排序方法,并运用二叉树查找。
- 编写二叉树以收纳一组数据,可以运用中序遍历、前序遍历、后序遍历来进行查找。
- 简单学习二叉树方面的红黑数。
- 学习分块查找、哈希查找在链表上的实现方法。
2. 实验过程及结果
定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序)。
重构代码,
把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)
把测试代码放test包中,用IDEA的编辑器命令行编译运算。
补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
测试实现的算法(正常,异常,边界)
学习斐波那契数列的查找方法,也是二分查找的一种提升算法,通过运用黄金比例的概念在数列中选择查找点进行查找,提高查找效率。学习二叉树的排序方法,并运用二叉树查找。
3. 实验过程中遇到的问题和解决过程
- 问题1:一开始我使用的是在类里面编写循环代码,来进行查找用while语句实现并判断,但是后来我发现自己的循环会一直走到链的最后一位,然后再弹出,根本不是我需要的查找数字。
问题1解决方法:后来发现我的条件语句有很多问题,一一改正后,自己有重写了一个递归调用的方法,比之前的循环方法减少了很多代码量。
- 问题2:在实验4调用sort包时,发现自己缺少一种方法,在sort中编写好后却发现自己不能调用。
问题2解决方法:发现是自己的方法应该写在本身的类里。
其他(感悟、思考等)
在学习链的排序时,发现有很多方法可以用,不是非要冒泡法或选择排序发,哈希法取模循环排序也可以为数字排序,不过排序首先得查找,再决定用交换还是插入排序,当然最简单的线性排序交换也可以,快速排序的交换方法是最快的算法。在学习斐波那契查找时,相对于折半查找,一般将待比较的key值与第mid=(low+high)/2位置的元素比较,比较结果分三种情况:
(1)相等,mid位置的元素即为所求
(2)>,low=mid+1;
(3)<,high=mid-1。
斐波那契查找与折半查找很相似,他是根据斐波那契序列的特点对有序表进行分割的。他要求开始表中记录的个数为某个斐波那契数小1,及n=F(k)-1;
参考资料
以上是关于《数据结构与面向对象程序设计》实验7 报告的主要内容,如果未能解决你的问题,请参考以下文章
20182303 2019-2020-1 《数据结构与面向对象程序设计》实验8报告
20182303 2019-2020-1 《数据结构与面向对象程序设计》实验7报告
20182322 2019-2020-1 《数据结构与面向对象程序设计》实验7报告
20182327 2019-2020-1 《数据结构与面向对象程序设计》实验八报告