fork download
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.Collections;
  4. import java.util.LinkedList;
  5. import java.util.Random;
  6.  
  7. public class Main {
  8.  
  9. public static void main(String[] args) throws Exception {
  10.  
  11. Integer[] array = new Integer[10000];
  12. Random random = new Random();
  13.  
  14. for (int i = 0; i < array.length; i++)
  15. array[i] = random.nextInt(Integer.MAX_VALUE);
  16.  
  17. long before = System.nanoTime();
  18. LinkedList<Integer> linkedList = new LinkedList<Integer>(Arrays.asList(array));
  19. linkedList.add(-1);
  20. Collections.sort(linkedList, Collections.reverseOrder());
  21. System.out.println((System.nanoTime() - before) / 1000);
  22.  
  23. before = System.nanoTime();
  24. ArrayList<Integer> arrayList = new ArrayList<Integer>(Arrays.asList(-1));
  25. linearInsertion(array, arrayList);
  26. System.out.println((System.nanoTime() - before) / 1000);
  27.  
  28. System.out.println(arrayList.equals(linkedList));
  29. }
  30.  
  31.  
  32. private static void linearInsertion(Integer[] intArray, ArrayList<Integer> list) {
  33. for (int integer : intArray) {
  34. for (int i = 0; i < list.size(); i++) {
  35. if (integer > list.get(i)) {
  36. list.add(i, integer);
  37. break;
  38. }
  39. }
  40. }
  41. }
  42. }
  43.  
Success #stdin #stdout 0.37s 245824KB
stdin
Standard input is empty
stdout
15630
317448
true