20162304 实验三

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();
        }
    }
posted @ 2017-11-12 22:59  20162304张浩林  阅读(265)  评论(2编辑  收藏  举报