常用排序算法分析与实现

常用排序算法分析与实现

ID:26184698

大小:435.00 KB

页数:26页

时间:2018-11-25

常用排序算法分析与实现_第1页
常用排序算法分析与实现_第2页
常用排序算法分析与实现_第3页
常用排序算法分析与实现_第4页
常用排序算法分析与实现_第5页
资源描述:

《常用排序算法分析与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、·常用排序算法分析与实现(一)(Java版)··插入排序·直接插入排序、希尔排序·选择排序·简单选择排序、堆排序·交换排序·冒泡排序、快速排序·归并排序··基数排序·排序基类Java代码1.packagesort; 2.3.importjava.util.Arrays; 4.importjava.util.Comparator; 5.importjava.util.Random; 6.7./**8.*排序接口,所有的排序算法都要继承该抽象类,并且要求数组中的9.*元素要具有比较能力,即数组元素已实现了Comparab

2、le接口10.*11.*@authorjzj1.*@date2009-12-52.*3.*@param4.*/5.publicabstractclassSort>{ 6.7.publicfinalComparator DEFAULT_ORDER=newDefaultComparator(); 8.publicfinalComparator REVERSE_ORDER=newReverseComparator(); 9.10./**11.    *排序算法,需实现,对数组中指定的元素进行排序12.    *@param

3、array待排序数组13.    *@paramfrom从哪里14.    *@paramend排到哪里15.    *@paramc16.    */17.publicabstractvoidsort(E[]array,intfrom,intend,Comparator c); 18.19./**20.    *对数组中指定部分进行排序21.    *@paramfrom从哪里22.    *@paramlen排到哪里23.    *@paramarray待排序数组24.    *@paramc比较器25.    

4、*/26.publicvoidsort(intfrom,intlen,E[]array,Comparator c){ 27.       sort(array,0,array.length-1,c); 28.   } 29.30./**31.    *对整个数组进行排序,可以使用自己的排序比较器,也可使用该类提供的两个比较器32.    *@paramarray待排序数组1.    *@paramc比较器2.    */3.publicfinalvoidsort(E[]array,Comparator c){ 4. 

5、      sort(0,array.length,array,c); 5.   } 6.7./**8.    *对整个数组进行排序,采用默认排序比较器9.    *@paramarray待排序数组10.    */11.publicfinalvoidsort(E[]array){ 12.       sort(0,array.length,array,this.DEFAULT_ORDER); 13.   } 14.15.//默认比较器(一般为升序,但是否真真是升序还得看E是怎样实现Comparable接口的)16.

6、privateclassDefaultComparatorimplementsComparator { 17.publicintcompare(Eo1,Eo2){ 18.returno1.compareTo(o2); 19.       } 20.   } 21.22.//反序比较器,排序刚好与默认比较器相反23.privateclassReverseComparatorimplementsComparator { 24.publicintcompare(Eo1,Eo2){ 25.returno2.compareTo

7、(o1); 26.       } 27.   } 28.29./**30.    *交换数组中的两个元素的位置31.    *@paramarray待交换的数组32.    *@parami第一个元素33.    *@paramj第二个元素34.    */1.protectedfinalvoidswap(E[]array,inti,intj){ 2.if(i!=j){//只有不是同一位置时才需交换3.           Etmp=array[i]; 4.           array[i]=array[j];

8、 5.           array[j]=tmp; 6.       } 7.   } 8.9./**10.    *数组元素后移11.    *@paramarray待移动的数组12.    *@paramstartIndex从哪个开始移13.    *@paramendIndex到哪个元素止14.    */15.protectedfi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。