- 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
您可能关注的文档
- 阀控缸位置伺服系统.doc
- 防溺水主题班会教案-珍爱生命--预防溺水.doc
- 附属办公楼建筑设计方案节能(绿色建筑)设计审查表2份.doc
- 阿里巴巴跨境人才认证考试答案.doc
- 降糖药痛风.doc
- 陇南市2016专业技术人员继续教育在线考试试题答案.docx
- 防尘控制专项施工方案.doc
- 降雨对滑坡的作用机理.docx
- 隧道班组长作业指导书.docx
- 隧道超前长管棚技术交底.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)