gon2

Untitled

Feb 19th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. import edu.princeton.cs.algs4.*;
  2.  
  3. public class PlotRunningTimes {
  4.  
  5. public static double timeInsertionSort(int arraySize, int numTrials, long seed) {
  6. // Hér er ráðlagt (en ekki nauðsynlegt) að skrifa aðferð skv. lýsingu:
  7. /*
  8. Skilar meðalkeyrslutíma innsetningarröðunar á slembifylki af stærð <arraySize>
  9. eftir <numTrials> keyrslur, með slembitölugjafann stilltan á <seed>.
  10. */
  11. double y = 0;
  12. StopwatchCPU timi;
  13. Double[] x;
  14.  
  15. for(int i=0; i<numTrials; i++) {
  16.  
  17. timi = new StopwatchCPU(); // búum til skeiðklukku
  18.  
  19. x = new Double[arraySize];
  20. StdRandom.setSeed(seed);
  21. for (int j=0; j<x.length; j++) {
  22. x[j] = StdRandom.uniform();
  23. }
  24.  
  25. Insertion.sort(x);
  26.  
  27. y += timi.elapsedTime(); // tíminn frá því að skeiðklukkan varð til
  28. }
  29.  
  30. y /= numTrials; //meðaltal
  31. System.out.println(y);
  32. return y;
  33. }
  34.  
  35. public static void main(String[] args) {
  36. /* Skilgreining gagna */
  37.  
  38. int maxArraySize = 5000; // Mesta stærð á fylki sem við ætlum að tímamæla
  39. int stride = 10; // Bil á milli stærða
  40. int numTrials = 20; // Fjöldi mælinga fyrir hverja stærð fylkis
  41. long seed = 203; // Fastur grunnur fyrir slembitölugjafann
  42.  
  43.  
  44. for (int i=maxArraySize; i>0; i-=stride) {
  45.  
  46. double a = timeInsertionSort(i, numTrials, seed); // mælingar
  47. System.out.println(i);
  48.  
  49. if (i == maxArraySize) { // skilgreinum x og y-ás
  50. StdDraw.setXscale(0, maxArraySize);
  51. StdDraw.setYscale(0, a);
  52. StdDraw.setPenRadius(0.005);
  53. }
  54.  
  55. StdDraw.point(i, a); // teiknum punkt
  56. }
  57.  
  58. }
  59.  
  60. }
Add Comment
Please, Sign In to add comment