欢迎来到天天文库
浏览记录
ID:40312902
大小:29.15 KB
页数:11页
时间:2019-07-30
《简单工厂模式和策略模式实现一些排序算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第一次使用设计模式编写java版的排序算法。欢迎指点,有不足之处还望不吝赐教。本人略懒,UML图就不画了。================Sort类,所有将要实现的算法的母类=====================packagesort;importjava.util.Calendar;importjava.util.Random;publicabstractclassSort{ //存储排序数量的数组。 int[]arrays; //指定随机生成的数字的范围。 intrange;
2、 //存储对应排序数量所用的时间。 long[]sortTimes; Sort(){ } Sort(int[]arrays,intrange){ this.arrays=arrays; this.range=range; this.sortTimes=newlong[arrays.length]; } //具体排序方法。 publicabstractint[]sort(int[]array,intlength);
3、 //显示结果。 publicvoiddisplay(Stringname){ System.out.println("排序数量tt"+name+"(ms)"); for(intn=0;n4、nce().getTimeInMillis(); this.sort(this.getRandArray(arrays[n]),arrays[n]); longend=Calendar.getInstance().getTimeInMillis(); time+=(end-begin); } sortTimes[n]=time/turns; } for(inti=0;i5、length;++i){ System.out.println(""+arrays[i]+"tt"+sortTimes[i]); } } //生成指定长度的数组。 publicint[]getRandArray(intn){ int[]array=newint[n]; Randomrand=newRandom(); for(inti=0;i6、Int(range); } returnarray; } //测试数组是否排序成功,顺序由小到大。 publicbooleanisSorted(int[]array){ for(inti=0;iarray[i+1]){ returnfalse; } } returntrue; } //显示数组 publ7、icvoiddisplay(int[]array){ for(inti=0;i8、rtName,int[]arrays,intrange){ Sortsort=null; char[]sortname=sortName.toCharArray(); //jdk1.7过后switch就支持String类型了。 switch(sortname[0]){ case'B'://冒泡排序 sort=newBubbleSort(arrays,range); brea
4、nce().getTimeInMillis(); this.sort(this.getRandArray(arrays[n]),arrays[n]); longend=Calendar.getInstance().getTimeInMillis(); time+=(end-begin); } sortTimes[n]=time/turns; } for(inti=0;i5、length;++i){ System.out.println(""+arrays[i]+"tt"+sortTimes[i]); } } //生成指定长度的数组。 publicint[]getRandArray(intn){ int[]array=newint[n]; Randomrand=newRandom(); for(inti=0;i6、Int(range); } returnarray; } //测试数组是否排序成功,顺序由小到大。 publicbooleanisSorted(int[]array){ for(inti=0;iarray[i+1]){ returnfalse; } } returntrue; } //显示数组 publ7、icvoiddisplay(int[]array){ for(inti=0;i8、rtName,int[]arrays,intrange){ Sortsort=null; char[]sortname=sortName.toCharArray(); //jdk1.7过后switch就支持String类型了。 switch(sortname[0]){ case'B'://冒泡排序 sort=newBubbleSort(arrays,range); brea
5、length;++i){ System.out.println(""+arrays[i]+"tt"+sortTimes[i]); } } //生成指定长度的数组。 publicint[]getRandArray(intn){ int[]array=newint[n]; Randomrand=newRandom(); for(inti=0;i6、Int(range); } returnarray; } //测试数组是否排序成功,顺序由小到大。 publicbooleanisSorted(int[]array){ for(inti=0;iarray[i+1]){ returnfalse; } } returntrue; } //显示数组 publ7、icvoiddisplay(int[]array){ for(inti=0;i8、rtName,int[]arrays,intrange){ Sortsort=null; char[]sortname=sortName.toCharArray(); //jdk1.7过后switch就支持String类型了。 switch(sortname[0]){ case'B'://冒泡排序 sort=newBubbleSort(arrays,range); brea
6、Int(range); } returnarray; } //测试数组是否排序成功,顺序由小到大。 publicbooleanisSorted(int[]array){ for(inti=0;iarray[i+1]){ returnfalse; } } returntrue; } //显示数组 publ
7、icvoiddisplay(int[]array){ for(inti=0;i8、rtName,int[]arrays,intrange){ Sortsort=null; char[]sortname=sortName.toCharArray(); //jdk1.7过后switch就支持String类型了。 switch(sortname[0]){ case'B'://冒泡排序 sort=newBubbleSort(arrays,range); brea
8、rtName,int[]arrays,intrange){ Sortsort=null; char[]sortname=sortName.toCharArray(); //jdk1.7过后switch就支持String类型了。 switch(sortname[0]){ case'B'://冒泡排序 sort=newBubbleSort(arrays,range); brea
此文档下载收益归作者所有