欢迎来到天天文库
浏览记录
ID:52703565
大小:382.50 KB
页数:26页
时间:2020-03-29
《常用排序算法分析与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、·常用排序算法分析与实现<一)2、口8.*9.*@authorjzj10.*@date2009-12-511.*12.*@param13.*/14.publicabstractclassSort>{ 15.publicfinalComparator DEFAULT_ORDER=newDefaultComparator(>。 b5E2RGbCAP26/261.publicfinalComparator REVERSE_ORDER=newReverseComparator(>。 p1EanqFDPw2./**3. *排序算法,需实现,3、对数组中指定的元素进行排序4. *@paramarray待排序数组5. *@paramfrom从哪里6. *@paramend排到哪里7. *@paramc8. */9.publicabstractvoidsort(E[]array,intfrom,intend,Comparator c>。 DXDiTa9E3d10./**11. *对数组中指定部分进行排序12. *@paramfrom从哪里13. *@paramlen排到哪里14. *@param4、array待排序数组15. *@paramc比较器16. */17.publicvoidsort(intfrom,intlen,E[]array,Comparator c>{ RTCrpUDGiT18. sort(array,0,array.length-1,c>。 19. } 20./**21. *对整个数组进行排序,可以使用自己的排序比较器,也可使用该类提供的两个比较器22. *@paramarray待排序数组23. *@paramc比较器24. 5、*/25.publicfinalvoidsort(E[]array,Comparator c>{ 26. sort(0,array.length,array,c>。 27. } 28./**29. *对整个数组进行排序,采用默认排序比较器30. *@paramarray待排序数组31. */26/261.publicfinalvoidsort(E[]array>{ 2. sort(0,array.length,array,this.DEFAULT_ORDER6、>。 3. } 4.//默认比较器<一般为升序,但是否真真是升序还得看E是怎样实现Comparable接口的)5.privateclassDefaultComparatorimplementsComparator { 5PCzVD7HxA6.publicintcompare(Eo1,Eo2>{ 7.returno1.compareTo(o2>。 8. } 9. } 10.//反序比较器,排序刚好与默认比较器相反11.privateclassReverseComparatorimple7、mentsComparator { jLBHrnAILg12.publicintcompare(Eo1,Eo2>{ 13.returno2.compareTo(o1>。 14. } 15. } 16./**17. *交换数组中的两个元素的位置18. *@paramarray待交换的数组19. *@parami第一个元素20. *@paramj第二个元素21. */22.protectedfinalvoidswap(E[]array,inti,intj>{ x8、HAQX74J0X23.if(i!=j>{//只有不是同一位置时才需交换24. Etmp=array[i]。 25. array[i]=array[j]。 26. array[j]=tmp。 27. } 28. } 29./**30. *数组元素后移31. *@paramarray待移动的数组32. *@paramstartIndex从哪个开始移3
2、口8.*9.*@authorjzj10.*@date2009-12-511.*12.*@param13.*/14.publicabstractclassSort>{ 15.publicfinalComparator DEFAULT_ORDER=newDefaultComparator(>。 b5E2RGbCAP26/261.publicfinalComparator REVERSE_ORDER=newReverseComparator(>。 p1EanqFDPw2./**3. *排序算法,需实现,
3、对数组中指定的元素进行排序4. *@paramarray待排序数组5. *@paramfrom从哪里6. *@paramend排到哪里7. *@paramc8. */9.publicabstractvoidsort(E[]array,intfrom,intend,Comparator c>。 DXDiTa9E3d10./**11. *对数组中指定部分进行排序12. *@paramfrom从哪里13. *@paramlen排到哪里14. *@param
4、array待排序数组15. *@paramc比较器16. */17.publicvoidsort(intfrom,intlen,E[]array,Comparator c>{ RTCrpUDGiT18. sort(array,0,array.length-1,c>。 19. } 20./**21. *对整个数组进行排序,可以使用自己的排序比较器,也可使用该类提供的两个比较器22. *@paramarray待排序数组23. *@paramc比较器24.
5、*/25.publicfinalvoidsort(E[]array,Comparator c>{ 26. sort(0,array.length,array,c>。 27. } 28./**29. *对整个数组进行排序,采用默认排序比较器30. *@paramarray待排序数组31. */26/261.publicfinalvoidsort(E[]array>{ 2. sort(0,array.length,array,this.DEFAULT_ORDER
6、>。 3. } 4.//默认比较器<一般为升序,但是否真真是升序还得看E是怎样实现Comparable接口的)5.privateclassDefaultComparatorimplementsComparator { 5PCzVD7HxA6.publicintcompare(Eo1,Eo2>{ 7.returno1.compareTo(o2>。 8. } 9. } 10.//反序比较器,排序刚好与默认比较器相反11.privateclassReverseComparatorimple
7、mentsComparator { jLBHrnAILg12.publicintcompare(Eo1,Eo2>{ 13.returno2.compareTo(o1>。 14. } 15. } 16./**17. *交换数组中的两个元素的位置18. *@paramarray待交换的数组19. *@parami第一个元素20. *@paramj第二个元素21. */22.protectedfinalvoidswap(E[]array,inti,intj>{ x
8、HAQX74J0X23.if(i!=j>{//只有不是同一位置时才需交换24. Etmp=array[i]。 25. array[i]=array[j]。 26. array[j]=tmp。 27. } 28. } 29./**30. *数组元素后移31. *@paramarray待移动的数组32. *@paramstartIndex从哪个开始移3
此文档下载收益归作者所有