标签:出栈 虚拟 ret article 搜索 变换 tin 返回 ref
课程:《程序设计与数据结构》
班级: 1823
姓名: 邹家伟
学号:20182315
实验教师:王志强
实验日期:2019年10月28日
必修/选修: 必修
定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。
把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)
把测试代码放test包中
补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
编写Android程序对实现各种查找与排序算法进行测试
实验2:因虚拟机已卸,开启idea的terminal选项,在里面运用命令行运行Java代码,此环节经网络搜索,要首先配置jdk环境变量,才可在在命令行中用javac运行。
实验3的难度整体不大,因老师已给出博客,难度只在于自行理解代码及实验原理,涉猎更多的排序方法。其原理大致相同,本质都是对二分法的各种告高阶改良。
实验四的难度可以说最大,需要对堆,二叉树整体综合理解学习,以及递归的整体学习,才可做完实验。。。
问题1:进行希尔排序时,对排序原理产生误解,导致排序失败。
问题2:实验4中,对堆这种结构理解不清,堆的构造与树不同,其结点调换也比树灵活的多。
问题2解决方案:通过网络查找,理解了堆逻辑构图与理论构图的对应关系,可用数组辅助理解,通过数组下标的灵活运用,实现插入删除的操作。如图所示,每次排出一个最值节点,堆就少了一个需要排序的数,按此递归,直至堆只有一个节点
问题三解决方案:递归就是方法调用自己,在方法中设置return条件,在适当时跳出递归。递归的运用思路为:首先分析整体一小块,设置return条件,然后在在返回值里继续运算。
实验4解决方案:在出栈,查看栈顶,取下一位节点之前,应加上判断语句加以判断,如果实在因粗心大意无法避免,时候有针对的调试也可纠正错误。
在数据结构学习中,应深刻理解每种结构的构造特性。对于递归,栈,队列这种基础结构,更是复杂结构的基础。对于出栈入栈,出对入队的特性,要在堆,数学习中适当的加以运用。
标签:出栈 虚拟 ret article 搜索 变换 tin 返回 ref
原文地址:https://www.cnblogs.com/zjwbk/p/11855496.html