Java 泛型快速排序 以sdut 1196为例
2013-11-28 11:47
357 查看
oj链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1196
Java中,Arrays.sort()静态方法就是利用的快速排序,(看到网上有的说用的归并排序,测试了下,跟自己写的快速排序消耗的时间和空间都一样,所以确定是快速排序),对类的集合排序,需要实现Comparable接口,(类似C++ STL中sort函数需要的小于号)。初学Java集合,记录一下。初学者。。下面是调用Arrays.sort()和自己实现的泛型MySort()的两种写法:
首先是一个内部类:(上面链接的题目要求)
MySort方法
有不足之处谢谢指出!
Java中,Arrays.sort()静态方法就是利用的快速排序,(看到网上有的说用的归并排序,测试了下,跟自己写的快速排序消耗的时间和空间都一样,所以确定是快速排序),对类的集合排序,需要实现Comparable接口,(类似C++ STL中sort函数需要的小于号)。初学Java集合,记录一下。初学者。。下面是调用Arrays.sort()和自己实现的泛型MySort()的两种写法:
首先是一个内部类:(上面链接的题目要求)
private static <T extends Comparable<Object>> void quick_sort(T[] s, int l, int r) { if(l >= r) return; int i = l, j = r; T x = s[l]; while(i < j) { while(i < j && s[j].compareTo(x) >= 0) j--; if(i < j) s[i++] = s[j]; while(i < j && s[i].compareTo(x) < 0) i++; if(i < j) s[j--] = s[i]; } s[i] = x; quick_sort(s, l, i-1); quick_sort(s, i+1, r); } private static <T extends Comparable<Object>> void MySort(T[] data) { quick_sort(data, 0, data.length-1); }
MySort方法
有不足之处谢谢指出!
相关文章推荐
- java 判断字符串能否转化为数字的三种方法
- ubuntu下安装eclipse出现Could not load SWT library错误处理方式
- java中try 与catch的使用
- Java 设置缓存过期时间/JSP 设置浏览器缓存过期时间
- Java 线程互斥
- JavaSE 国际化 简单例子
- ArrayList源码分析(基于JDK1.6)
- static class 静态类(Java)
- Java初学者入门简介
- 配置javac
- JSON和JAVA的POJO的相互转换
- java中System.copyArray与Arrays.copyof区别
- Axis2;wsdl生成客户端和serverJava代码
- java动态代理学习笔记
- JNI 学习手记
- JAVA高级特性总结
- zip4j -- Java处理zip压缩文件的完整解决方案(键人岐)
- Arrays的sort方法分析
- java中newInstance()与new 比较
- 使用paoding lucene分词 ,遇到java.lang.VerifyError: Cannot inherit from final class 问题