日期:2014-05-20 浏览次数:20840 次
你的数组数据有点少。。看不出多少性能差别。。。 一种: // 排序-->小到大 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); }
------解决方案--------------------
速度要看数据的排布和数据量来决定的 ,没有一种绝对的快慢