关于Java中Arrays.sort()方法TLE
2016-06-10 02:39
603 查看
最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速排序的,jdk中相关调用源码如下
View Code
或者也可以用List,然后调用Collections.sort()。
当然还可以先shuffle一下打乱数组,再调用排序,不过其实理论上来说还是有风险。
CF上有一篇博文可以参考:http://codeforces.com/blog/entry/7108
---------------------------------------------------------------------------------
6.20更新
今天我用Arrays.parallelSort方法测试了一下,发现在使用包装类数组Integer[]的情况下比正常的Arrays.sort慢,在使用基本类型int[]的情况下,同样超时,与预想结果不同,先记录下这个问题,暂时还没时间细究。
public static void sort(Object[] a) { if (LegacyMergeSort.userRequested) legacyMergeSort(a); else ComparableTimSort.sort(a, 0, a.length, null, 0, 0); }
View Code
或者也可以用List,然后调用Collections.sort()。
当然还可以先shuffle一下打乱数组,再调用排序,不过其实理论上来说还是有风险。
CF上有一篇博文可以参考:http://codeforces.com/blog/entry/7108
---------------------------------------------------------------------------------
6.20更新
今天我用Arrays.parallelSort方法测试了一下,发现在使用包装类数组Integer[]的情况下比正常的Arrays.sort慢,在使用基本类型int[]的情况下,同样超时,与预想结果不同,先记录下这个问题,暂时还没时间细究。
相关文章推荐
- Struts 数字百分比格式化
- 关于java的一些小问题,list中添加对象,java基本数据类型对象
- 十六进制转化为十进制
- spring整合struts2,action里的service注入,空指针异常
- JavaAPI之PropertyDescriptor
- 新手配置springmvc+freemarker过程
- jvisualvm连接远程jvm实例
- java链接数据库--Mysql
- JavaAPI之Introspector
- Spring Boot入门例子
- java 假死状态
- JavaAPI之BeanInfo接口
- Annotation
- eclipse主题颜色配置
- SpringMVC Controller 返回值的可选类型
- Spring--spring3.0应用springmvc构造RESTful URL详细讲解
- 一些操作JavaBean的方法
- Spring--REST
- 初步学习使用MAVEN和IDEA写第一个JAVA程序
- myeclipse 删除历史工作空间记录