面向对象技术实验二报告.docxVIP

  • 4
  • 0
  • 约6.18千字
  • 约 10页
  • 2016-12-29 发布于重庆
  • 举报
[姓名]面向对象技术实验报告实验二排序面向对象技术实验二报告1.实验内容:设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。要求:1.可以对任何简单类型和任意对象进行排序2.可以支持升序、降序、字典排序等多种顺序要求3.可以随意增加排序算法和顺序要求,保证其他程序不修改4.减少程序代码中逻辑上的冗余5.至少用两种方案编程实现该程序包,并说明两个方案的优缺点6.提交设计报告,包括:使用UML设计的类图;主要程序代码说明;方案优缺点比较。??在实现该程序时运用了类的继承、接口的实现以及组合的方案2.程序的总体设计:详见后面所附UML类图3.关键代码说明:(1)Compator接口(use to compare)主要利用java的pator类,创建一个MyCompator接口public interface MyCompator {int compare(Object o1,Object o2);},然后实现这个接口,用于比较任何简单类型和任意对象,分别实现ByteCompator、CharCompator、DoubleCompator、FloatCompator、IntCompator、LongCompator、ShortCompator、StringCompator以StringCompator为例,其他实现类与此类似public class StringCompator implements MyCompator{@Overridepublic int compare(Object o1, Object o2) {String str1 = (String)o1;String str2 = (String)o2;return pareTo(str2);}}(2)第一种实现:创建Sorter类作为父类①在sorter类中实现各类方法用于各种数据类型以及任何对象的排序,以sortIntArray为例final void sortIntArray(int[] array,boolean isAscend) {Integer[] integers = new Integer[array.length];for(int i = 0;iarray.length;i++)integers[i]=array[i];this.setCompator(new IntCompator());this.sort(isAscend, integers);for(int j = 0;jintegers.length;j++)array[j]=integers[j];}②创建抽象类/** * * @param isAscend 是否升序排序 */protected abstract void sort(boolean isAscend,Object[] array);/** * 按升序排序 */final void sort(Object[] array){sort(true,array);}}③排序算法:package com.inheritancesort;import pator.MyCompator;public class BubbleSorter extends Sorter {public BubbleSorter( MyCompator a) {super(a);}public BubbleSorter() {super();}@Overridepublic void sort(boolean isAscend,Object[] array) {if(isAscend){for (int i = 0; i array.length-1; i++) {for (int j = 0; j array.length-i-1; j++) {if(pare(array[j], array[j+1])0)swap(array,j,j+1);}}}else{for (int i = 0; i array.length-1; i++) {for (int j = 0; j array.length-i-1; j++) {if(pare(array[j], array[j+1])0)swap(array,j,j+1);}}}}private void swap(Object[] array, int j, int i) {Object temp =array[j];array[j] = array[i];array[i] = temp;}}package com.inheritancesort;import pator.MyCompator;public class InsertSorter extends So

文档评论(0)

1亿VIP精品文档

相关文档