gon2

Untitled

Feb 19th, 2018
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. import edu.princeton.cs.algs4.*;
  2.  
  3. public class SortingCompetition {
  4.  
  5. // búum til random fylki:
  6. private static Double[] randomFylki(int arraySize, long seed) {
  7. Double[] x = new Double[arraySize];
  8. StdRandom.setSeed(seed);
  9.  
  10. for (int j=0; j<x.length; j++) {
  11. x[j] = StdRandom.uniform();
  12. }
  13.  
  14. return x;
  15. }
  16.  
  17. // samsetningartími:
  18. private static double mergeTime(int numTrials, int arraySize, long seed) {
  19. double y = 0;
  20. StopwatchCPU timi;
  21.  
  22. for(int i=0; i<numTrials; i++) {
  23. Double[] x = randomFylki(arraySize, seed);
  24.  
  25. timi = new StopwatchCPU(); // búum til skeiðklukku
  26.  
  27. Merge.sort(x);
  28.  
  29. y += timi.elapsedTime(); // tíminn frá því að skeiðklukkan varð til
  30. }
  31.  
  32. y /= numTrials; // meðaltal
  33. return y;
  34. }
  35.  
  36. // innsetningartími:
  37. private static double insertionTime(int numTrials, int arraySize, long seed) {
  38. double y = 0;
  39. StopwatchCPU timi;
  40.  
  41. for(int i=0; i<numTrials; i++) {
  42. Double[] x = randomFylki(arraySize, seed);
  43.  
  44. timi = new StopwatchCPU(); // búum til skeiðklukku
  45.  
  46. Insertion.sort(x);
  47.  
  48. y += timi.elapsedTime(); // tíminn frá því að skeiðklukkan varð til
  49. }
  50.  
  51. y /= numTrials; // meðaltal
  52. return y;
  53. }
  54.  
  55. public static void main(String[] args) {
  56.  
  57. int maxN = 1000; // Við gefumst upp eftir 1000 stök
  58. int numTrials = 50000; // Fjöldi mælinga fyrir hverja stærð fylkis, hér mjög stórt
  59. long seed = 203; // Fastur grunnur fyrir slembitölugjafann
  60. int n = 10; // Byrjum að skoða fylki af þessari stærð
  61.  
  62. double insertionTime = 0;
  63. double mergeTime = Long.MAX_VALUE;
  64.  
  65. while (insertionTime < mergeTime && n < maxN) {
  66. insertionTime = insertionTime(numTrials, n, seed);
  67. mergeTime = mergeTime(numTrials, n, seed);
  68. n++;
  69.  
  70. //System.out.println("n: " + n + ", insertion: " + insertionTime + ", merge: " + mergeTime + ", ");
  71. }
  72. StdOut.println(n);
  73. }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment