简单工厂模式和策略模式实现一些排序算法

上传人:第*** 文档编号:38804823 上传时间:2018-05-08 格式:DOC 页数:11 大小:29.15KB
返回 下载 相关 举报
简单工厂模式和策略模式实现一些排序算法_第1页
第1页 / 共11页
简单工厂模式和策略模式实现一些排序算法_第2页
第2页 / 共11页
简单工厂模式和策略模式实现一些排序算法_第3页
第3页 / 共11页
简单工厂模式和策略模式实现一些排序算法_第4页
第4页 / 共11页
简单工厂模式和策略模式实现一些排序算法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《简单工厂模式和策略模式实现一些排序算法》由会员分享,可在线阅读,更多相关《简单工厂模式和策略模式实现一些排序算法(11页珍藏版)》请在金锄头文库上搜索。

1、第一次使用设计模式编写 java 版的排序算法。欢迎指点,有不足之处还望不吝 赐教。本人略懒,UML 图就不画了。=Sort 类,所有将要实现的算法的母类 =package sort;import java.util.Calendar; import java.util.Random;public abstract class Sort / 存储排序数量的数组。int arrays;/ 指定随机生成的数字的范围。int range;/ 存储对应排序数量所用的时间。long sortTimes;Sort()Sort(int arrays, int range)this.arrays = arra

2、ys;this.range = range;this.sortTimes = new longarrays.length;/ 具体排序方法。public abstract int sort(int array, int length);/ 显示结果 。public void display(String name) System.out.println(“排序数量tt“ + name + “(ms)“);for (int n = 0; n arrayi + 1) return false;return true;/显示数组public void display(int array)for(in

3、t i = 0; i out; in-)if (arrayin = 0 i-) / 选出最大的元素swap(array, 0, i); / 在这之后, i 以及后面的元素都是有序的heapify(array, 0, i - 1); / 根元素由于被交换过,所以需要进行一次调整,让他再变成堆。return array;void buildHeap(int array) int n = array.length; for (int i = n / 2 - 1; i = 0; -i) / n / 2 - 1, 就是最后一个有子节点的元素heapify(array, i, n - 1);/ 判断是否为

4、大顶堆。boolean isHeap(int a, int i) int n = a.length;if (i = n) return true; int left = 2 * i + 1; / 左节点int right = 2 * i + 2; / 右节点if (left ai) return false;if (right ai) return false;return isHeap(a, left) / 左右子树也是大顶堆。/ 不断调整,直到整个数组变成堆。/ i的左右子树都是堆 (j后面的元素不管,不属于堆), 我们要把他调整成堆。void heapify(int a, int i,

5、int j) int left = i * 2 + 1;int right = i * 2 + 2; if (left j) / 没有左子树return;int large = left;if (right = j if (ai alarge) / 如果根元素比 large小,重新调整。swap(a, i, large); heapify(a, large, j); / 继续操作large子树。private void swap(int a, int i, int j) int t = ai;ai = aj;aj = t;=系统排序=package sort;import java.util.

6、Arrays;public class SystemSort extends Sort public SystemSort() / TODO Auto-generated constructor stubSystemSort(int arrays, int range) super(arrays, range);/ TODO Auto-generated constructor stubOverridepublic int sort(int array, int length) / TODO Auto-generated method stubArrays.sort(array);return array;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号