20162304 实验三
实验三-查找与排序-1
实验结果
实验三-查找与排序-2
把Sorting.java Searching.java放入 cn.edu.besti.cs1623.(姓名首字母+四位学号) 包中
把测试代码放test包中
重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)
- 这个实验的话比较简单,只需要打个包即可。
实验三-查找与排序-3
参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试
提交运行结果截图
整体实验结果截图:
代表性代码:
- 平衡查找树之2-3查找树:
public static Comparable treesearch(Integer[] data,Integer target){
LinkedBinarySearchTree linkedBinarySearchTree =new LinkedBinarySearchTree();
int i = 0;
while(i<data.length){
linkedBinarySearchTree.add(data[i]);
i++;
}
return linkedBinarySearchTree.find(target);
}
实验三-查找与排序-4
补充实现课上讲过的排序方法:希尔排序,堆排序,桶排序,二叉树排序等
测试实现的算法(正常,异常,边界)
提交运行结果截图
推送相关代码到码云上
-
堆排序相关学习:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。
-
实验成果:
public static void HeapSort(Comparable []arr){
LinkedMaxHeap heap =new LinkedMaxHeap();
for(int i=0;i<arr.length;i++){
heap.add(arr[i]);
}
for (int j=arr.length-1;j>=0;j--){
arr[j]=heap.getMax();
heap.removeMax();
}
}