日期:2014-05-20 浏览次数:20993 次
你的数组数据有点少。。看不出多少性能差别。。。
一种:
// 排序-->小到大
public static void sortArray(int[] targetArr) {
long t = System.currentTimeMillis();
Arrays.sort(targetArr);
System.out.println("执行时间:" + (System.currentTimeMillis() - t) + "毫秒");
System.out.println("排序后结果");
for(int i : targetArr){
System.out.print(i + " ");
}
}
二种:
// 排序-->小到大
public static void sort(int[] targetArr) {
long t = System.currentTimeMillis();
int temp = 0;
for (int i = 0; i < targetArr.length; i++) {
for (int j = i; j < targetArr.length; j++) {
if (targetArr[i] > targetArr[j]) {
targetArr[i] = targetArr[i] ^ targetArr[j];
targetArr[j] = targetArr[i] ^ targetArr[j];
targetArr[i] = targetArr[i] ^ targetArr[j];
}
}
}
System.out.println("执行时间:" + (System.currentTimeMillis() - t) + "毫秒");
System.out.println("排序后结果");
for(int i : targetArr){
System.out.print(i + " ");
}
}
结果 :都是0毫秒。。。差别在微秒级的。。。
------解决方案--------------------
说实在话,这么点数据 有直接插入排序都不会有太大的时间差距的,楼主到底是想要实现什么哦
------解决方案--------------------
// 最大数下标
public static void maxFind(int[] targetArr) {
long t = System.currentTimeMillis();
int mymax=0;///最大值
int myloc=0;////下标
for(int i=0;i<targetArr.length;i++){
if(i==0){
mymax=targetArr[0];
}
int temp = targetArr[i];
if(temp > mymax){
mymax = temp;
myloc = i;
}
}
System.out.println("执行时间:" + (System.currentTimeMillis() - t) + "毫秒");
System.out.println("最大数下标 : "+myloc);
}
------解决方案--------------------
速度要看数据的排布和数据量来决定的 ,没有一种绝对的快慢