欢迎来到天天文库
浏览记录
ID:22868466
大小:378.83 KB
页数:11页
时间:2018-11-01
《面向对象技术实验二报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、面向对象技术实验报告实验二排序[姓名]面向对象技术实验二报告1.实验内容:设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、胃泡排序和快速排序算法要求:1.可以对任何简单类型和任意对象进行排序2.可以支持升序、降序、字典排序等多种顺序要求3.可以随意增加排序算法和顺序要求,保证K他程序不修改4.减少程序代码中逻辑上的冗余5.至少用两种方案编程实现该程序包,并说明两个方案的优缺点6.提交设计报告,包拈:使WUML设计的类图;主要程序代码说明;方案优缺点比较。在实现该程序时运用了类的继承、接U的实现以及组合的方案2.程序的总体设计:详见后而所附UML类阁1.关键代码说明:(1)C
2、ompator接口(usetocompare)主要利用java的com.compator炎,创建一个MyCompator接门publicinterfaceMyCompator{intcompare(Objectol,Objecto2);},然后实现这个接u,用于比较任何简单类型和任意对象,分别实现ByteCompator、CharCompator、DoubleCompator、FloatCompator、IntCompator、LongCompator、ShortCompator、StringCompator以StringCompator为例,K•他实现炎与此炎似publicclassS
3、tringCompatorimplementsMyCompator{@Overridepublicintcompare(Objectol,Objecto2){Stringstrl=(String)ol;Stringstr2=(String)o2;returnstrl.compareTo(str2);}}(2)第一种实现:创建Sorter类作为父类①在sorter类屮实现各类方法用于各种数据类型以及任何对象的排序,以sortIntArray为例finalvoidsortIntArray(int[]array,booleanisAscend){Integer[]integers=newInt
4、eger[array.length];for(inti=O;i5、j];}②创建抽象类*@paramisAscend是否升序排序*/protectedabstractvoidsort(booleanisAscend,Object[]array);*按升序排序finalvoidsort(Obj6、ect[]array){sortjtrue^rray);}③排序算法:packagecom.inheritancesort;importcom.compator.MyCompator;publicclassBubbleSorterextendsSorter{publicBubbleSorter(MyCompatora){super(a);}publicBubbleSorter(){super();}@Overridepublicvoidsort(booleanisAscendrObject[]array){if(isAscend){for(inti=0;i7、++){for(intj=0;j0)swap(array,j,j+l);}}}else{for(inti=0;i8、];array[j]=array[i];array[i]=temp;}packagecomJnheritancesort;importcom.compator.MyCompator;publicclassInsertSorterextendsSorter{publicInsertSorter(MyCompatorc){super(c);}publicInsertSorter(){super();}◎Overridepublicvoi
5、j];}②创建抽象类*@paramisAscend是否升序排序*/protectedabstractvoidsort(booleanisAscend,Object[]array);*按升序排序finalvoidsort(Obj
6、ect[]array){sortjtrue^rray);}③排序算法:packagecom.inheritancesort;importcom.compator.MyCompator;publicclassBubbleSorterextendsSorter{publicBubbleSorter(MyCompatora){super(a);}publicBubbleSorter(){super();}@Overridepublicvoidsort(booleanisAscendrObject[]array){if(isAscend){for(inti=0;i7、++){for(intj=0;j0)swap(array,j,j+l);}}}else{for(inti=0;i8、];array[j]=array[i];array[i]=temp;}packagecomJnheritancesort;importcom.compator.MyCompator;publicclassInsertSorterextendsSorter{publicInsertSorter(MyCompatorc){super(c);}publicInsertSorter(){super();}◎Overridepublicvoi
7、++){for(intj=0;j0)swap(array,j,j+l);}}}else{for(inti=0;i8、];array[j]=array[i];array[i]=temp;}packagecomJnheritancesort;importcom.compator.MyCompator;publicclassInsertSorterextendsSorter{publicInsertSorter(MyCompatorc){super(c);}publicInsertSorter(){super();}◎Overridepublicvoi
8、];array[j]=array[i];array[i]=temp;}packagecomJnheritancesort;importcom.compator.MyCompator;publicclassInsertSorterextendsSorter{publicInsertSorter(MyCompatorc){super(c);}publicInsertSorter(){super();}◎Overridepublicvoi
此文档下载收益归作者所有