有一个int [], 元素个数20到30个,元素都是正整数。
我用了Arrays.sort()排序,速度比较慢,有没有更快的办法?
谢谢!
------解决方案--------------------------------------------------------
Arrays.sort()用的是快速排序速度不慢,再说20/30个数能慢到哪去。。
------解决方案--------------------------------------------------------
冒泡也可以啊。这么小的数据量几乎一样快。
------解决方案--------------------------------------------------------
你20~30个的数据量好意思说Array.sort慢.......
Array.sort好像用的时归并吧.最快的之一了.
------解决方案--------------------------------------------------------
就那么几个数据还需要自己写排序,无语。
------解决方案--------------------------------------------------------
- Java code
你的数组数据有点少。。看不出多少性能差别。。。一种:// 排序-->小到大 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毫秒。。。差别在微秒级的。。。
------解决方案--------------------------------------------------------
说实在话,这么点数据 有直接插入排序都不会有太大的时间差距的,楼主到底是想要实现什么哦
------解决方案--------------------------------------------------------
- Java code
// 最大数下标 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); }
------解决方案--------------------------------------------------------
速度要看数据的排布和数据量来决定的 ,没有一种绝对的快慢