diff --git a/P4a/Rplots.pdf b/P4a/Rplots.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3496827a0b67d9b52fc8cceac86619c9a4ec9f5c Binary files /dev/null and b/P4a/Rplots.pdf differ diff --git a/P4a/bin/app/Maine.class b/P4a/bin/app/Maine.class index ef5cfb7a1b6246e8e2977fcf41cfa40ab12149bf..551331b8195abc233c9e67239a2d61f5633e4655 100644 Binary files a/P4a/bin/app/Maine.class and b/P4a/bin/app/Maine.class differ diff --git a/P4a/img/arraylist_gete.png b/P4a/img/arraylist_gete.png new file mode 100644 index 0000000000000000000000000000000000000000..c40ce7e292c7242a7860bc18a3b23528e2ce8316 Binary files /dev/null and b/P4a/img/arraylist_gete.png differ diff --git a/P4a/img/arraylist_modify.png b/P4a/img/arraylist_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..1c47a3eac67730f0b0b82f56bdba3f567370cb41 Binary files /dev/null and b/P4a/img/arraylist_modify.png differ diff --git a/P4a/img/arraylist_remove.png b/P4a/img/arraylist_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..66eed400432f6fc11cafc9ea953c12ee1b2c78ee Binary files /dev/null and b/P4a/img/arraylist_remove.png differ diff --git a/P4a/img/linkedList_gete.png b/P4a/img/linkedList_gete.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5401ef8b86a7ab2479984d71c862b0e717e1fc Binary files /dev/null and b/P4a/img/linkedList_gete.png differ diff --git a/P4a/img/linkedlist_modify.png b/P4a/img/linkedlist_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd3d176efb524783f93d659e30db27c9cd922df Binary files /dev/null and b/P4a/img/linkedlist_modify.png differ diff --git a/P4a/img/linkedlist_remove.png b/P4a/img/linkedlist_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..775ea2228041902706e89d6fe844a2960e4ebc35 Binary files /dev/null and b/P4a/img/linkedlist_remove.png differ diff --git a/P4a/img/vector_gete.png b/P4a/img/vector_gete.png new file mode 100644 index 0000000000000000000000000000000000000000..d1de33af147e59cd12f91567c7f2d421dbe7b7e6 Binary files /dev/null and b/P4a/img/vector_gete.png differ diff --git a/P4a/img/vector_modify.png b/P4a/img/vector_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..8442240959c0ff2ffbbac722e6f77b1706fed4d8 Binary files /dev/null and b/P4a/img/vector_modify.png differ diff --git a/P4a/img/vector_remove.png b/P4a/img/vector_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..93e7aab855f1e5c37dc8b430c7732c1fb050d7b7 Binary files /dev/null and b/P4a/img/vector_remove.png differ diff --git a/P4a/rscript.R b/P4a/rscript.R index 7631cc3f16f9010cc401a3ec3223b734dd19f29c..e2e4b80b82b8f00f513bc5aa2ba232c25faf897b 100644 --- a/P4a/rscript.R +++ b/P4a/rscript.R @@ -5,7 +5,92 @@ perf <- read.table("test.dat", header=TRUE) #Access to data + +# ggplot(perf[perf$Op=="getFirst" & perf$Structure=="arraylist" | perf$Op=="getMiddle" & perf$Structure=="arraylist" | perf$Op=="getLast" +# & perf$Structure=="arraylist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps d'accès à une ArrayList") +# ggsave("img/arraylist_get.png") + +# ggplot(perf[perf$Op=="getFirst" & perf$Structure=="vector" | perf$Op=="getMiddle" & perf$Structure=="vector" | perf$Op=="getLast" +# & perf$Structure=="vector",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps d'accès à un Vecteur") +# ggsave("img/vector_get.png") + +# ggplot(perf[perf$Op=="getFirst" | perf$Op=="getMiddle" | perf$Op=="getLast" +# & perf$Structure=="linkedlist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps d'accès à une LinkedList") +# ggsave("img/linkedList_get.png") + +# ggplot(perf[perf$Op=="changeFirstElement" & perf$Structure=="arraylist" | perf$Op=="changeMiddleElement" & perf$Structure=="arraylist" | perf$Op=="changeLastElement" +# & perf$Structure=="arraylist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps de modification d'un objet d'une ArrayList") +# ggsave("img/arraylist_modify.png") + +# ggplot(perf[perf$Op=="changeFirstElement" & perf$Structure=="vector" | perf$Op=="changeMiddleElement" & perf$Structure=="vector" | perf$Op=="changeLastElement" +# & perf$Structure=="vector",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps de modification d'un objet d'un Vecteur") +# ggsave("img/vector_modify.png") + +# ggplot(perf[perf$Op=="changeFirstElement" & perf$Structure=="linkedlist" | perf$Op=="changeMiddleElement" & perf$Structure=="linkedlist" | perf$Op=="changeLastElement" +# & perf$Structure=="linkedlist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps de modification d'un objet d'une LinkedList") +# ggsave("img/linkedlist_modify.png") + +# ggplot(perf[perf$Op=="removeFirstElement" & perf$Structure=="arraylist" | perf$Op=="removeMiddleElement" & perf$Structure=="arraylist" | perf$Op=="removeLastElement" +# & perf$Structure=="arraylist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps de suppresion d'un objet d'une ArrayList") +# ggsave("img/arraylist_remove.png") + +# ggplot(perf[perf$Op=="removeFirstElement" & perf$Structure=="vector" | perf$Op=="removeMiddleElement" & perf$Structure=="vector" | perf$Op=="removeLastElement" +# & perf$Structure=="vector",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) +# ggtitle("Temps de suppresion d'un objet d'un Vecteur") +# ggsave("img/vector_remove.png") + +ggplot(perf[perf$Op=="removeFirstElement" & perf$Structure=="linkedlist" | perf$Op=="removeMiddleElement" & perf$Structure=="linkedlist" | perf$Op=="removeLastElement" + & perf$Structure=="linkedlist",], aes(x=Taille, y=Temps, color=Op)) + geom_point() + geom_smooth() + facet_grid(.~Op) + ggtitle("Temps de suppresion d'un objet d'une LinkedList") +ggsave("img/linkedlist_remove.png") + + + + + + + + + + + + + + + + + #When it's first -ggplot(perf, aes(x=max, y=temps, group=version, color=as.character(version))) +geom_smooth() + geom_point() + ylim(0,3) + facet_grid(.~version) + -ggtitle("Graphique un peu moche") + scale_color_discrete(name="Version") -ggsave("graphique.png") \ No newline at end of file +# ggplot(perf, aes(x=Taille, y=Temps, group=Recur, color=as.character(Recur))) +geom_smooth() + geom_point() + ylim(0,3) + +# ggtitle("Premier élément ArrayList") +# ggsave("img/arraylist_getfirst.png") +# switch(perf[1],"Op", +# getFirst={ +# cat("Ok") +# ggplot(perf, aes(x=Taille, y=Temps, group=Recur, color=as.character(Recur))) +geom_smooth() + geom_point() + ylim(0,3) + facet_grid(.~Recur) +# switch(perf[1],"Stucture", +# arraylist={ +# cat("Ok") +# ggtitle("Premier élément ArrayList") +# ggsave("img/arraylist_getfirst.png") +# }, +# linkedlist={ + +# }, +# vector={ + +# } +# ) +# }, +# { +# cat("Ok") +# } +# ) \ No newline at end of file diff --git a/P4a/src/app/Maine.class b/P4a/src/app/Maine.class index bdcebcd22b56667629cf766913020eea14153d04..4f27e9fbcc6cacc3927bf4e9a3513020372ac959 100644 Binary files a/P4a/src/app/Maine.class and b/P4a/src/app/Maine.class differ diff --git a/P4a/src/app/Maine.java b/P4a/src/app/Maine.java index f991cc15494addea18699172fca78f66bca88125..114e7cae67024d402ba25365f1170c29ba9fb2a6 100644 --- a/P4a/src/app/Maine.java +++ b/P4a/src/app/Maine.java @@ -25,7 +25,13 @@ public class Maine { public static int getLastElement(List<Integer> l) { return (int) l.get(l.size()); - } + } + + public static void getFirstMidLast(List<Integer> l){ + getFirstElement(l); + getMiddleElement(l); + getLastElement(l); + } public static void changeFirstElement(List<Integer> l) { Random rd = new Random(); @@ -62,12 +68,9 @@ public class Maine { l.add(i); } - public static void randomTab(List<Integer> l, int size){ - System.out.println(l); - Random rd = new Random(); + public static void fillStructure(List<Integer> l, int size){ for (int i = 0; i < size; i++) { - int valeur = VAL_MIN + rd.nextInt(VAL_MAX - VAL_MIN); - l.add(valeur); + l.add(i); } } @@ -89,7 +92,7 @@ public class Maine { break; } - randomTab(struct, Integer.parseInt(args[1])); + fillStructure(struct, Integer.parseInt(args[1])); //Switch sur l'opération switch (args[2]) { diff --git a/P4a/test.dat b/P4a/test.dat index 06bccf0211bf5a9db35022b6037300b6086af0bf..7e739c99e609cf0384233bd50a78ebade9b61287 100644 --- a/P4a/test.dat +++ b/P4a/test.dat @@ -1,31 +1,91 @@ -Structure Taille Op Recur Temps Memoire -arraylist 1000 getLast 1 2.07 114052 -arraylist 1000 getLast 2 2.02 116880 -arraylist 1000 getLast 3 1.95 118648 -arraylist 1000 getLast 4 2.04 115544 -arraylist 1000 getLast 5 2.06 119876 -arraylist 1000 getLast 6 2.17 116340 -arraylist 1000 getLast 7 2.17 115420 -arraylist 1000 getLast 8 2.00 116316 -arraylist 1000 getLast 9 2.01 117304 -arraylist 1000 getLast 10 1.99 115104 -arraylist 100000 getLast 1 2.12 114724 -arraylist 100000 getLast 2 2.16 118724 -arraylist 100000 getLast 3 2.08 114560 -arraylist 100000 getLast 4 2.04 116768 -arraylist 100000 getLast 5 1.95 117600 -arraylist 100000 getLast 6 2.00 118088 -arraylist 100000 getLast 7 1.99 115880 -arraylist 100000 getLast 8 2.17 121228 -arraylist 100000 getLast 9 1.93 113108 -arraylist 100000 getLast 10 1.98 115244 -arraylist 1000000 getLast 1 2.04 149340 -arraylist 1000000 getLast 2 2.07 148328 -arraylist 1000000 getLast 3 2.20 145372 -arraylist 1000000 getLast 4 2.14 150104 -arraylist 1000000 getLast 5 2.12 155216 -arraylist 1000000 getLast 6 2.18 148792 -arraylist 1000000 getLast 7 2.06 150628 -arraylist 1000000 getLast 8 2.09 149424 -arraylist 1000000 getLast 9 2.08 152420 -arraylist 1000000 getLast 10 2.04 151412 +Structure Rec Taille Op Temps Memoire +linkedlist 1 920500 removeFirstElement 2.20 151472 +linkedlist 1 920500 removeMiddleElement 2.37 148004 +linkedlist 1 920500 removeLastElement 2.02 146364 +linkedlist 2 2188800 removeFirstElement 15.19 270608 +linkedlist 2 2188800 removeMiddleElement 14.66 273064 +linkedlist 2 2188800 removeLastElement 15.56 269380 +linkedlist 3 208200 removeFirstElement 2.23 125272 +linkedlist 3 208200 removeMiddleElement 2.04 121444 +linkedlist 3 208200 removeLastElement 2.16 122392 +linkedlist 4 959000 removeFirstElement 2.32 152048 +linkedlist 4 959000 removeMiddleElement 2.14 157048 +linkedlist 4 959000 removeLastElement 1.92 150412 +linkedlist 5 3142500 removeFirstElement 15.06 272136 +linkedlist 5 3142500 removeMiddleElement 15.48 272772 +linkedlist 5 3142500 removeLastElement 17.24 268604 +linkedlist 6 2159500 removeFirstElement 15.22 273736 +linkedlist 6 2159500 removeMiddleElement 14.94 275348 +linkedlist 6 2159500 removeLastElement 18.03 268220 +linkedlist 7 1862600 removeFirstElement 2.01 188224 +linkedlist 7 1862600 removeMiddleElement 2.04 190056 +linkedlist 7 1862600 removeLastElement 2.09 184560 +linkedlist 8 2382000 removeFirstElement 18.80 272824 +linkedlist 8 2382000 removeMiddleElement 14.70 270848 +linkedlist 8 2382000 removeLastElement 15.62 266576 +linkedlist 9 2060700 removeFirstElement 13.81 269892 +linkedlist 9 2060700 removeMiddleElement 15.38 271208 +linkedlist 9 2060700 removeLastElement 15.31 274528 +linkedlist 10 2146000 removeFirstElement 16.46 268280 +linkedlist 10 2146000 removeMiddleElement 14.51 271200 +linkedlist 10 2146000 removeLastElement 15.17 274172 +linkedlist 11 94500 removeFirstElement 2.04 116740 +linkedlist 11 94500 removeMiddleElement 2.09 117316 +linkedlist 11 94500 removeLastElement 2.03 119128 +linkedlist 12 661200 removeFirstElement 2.21 138128 +linkedlist 12 661200 removeMiddleElement 2.23 141432 +linkedlist 12 661200 removeLastElement 2.11 141108 +linkedlist 13 1507400 removeFirstElement 2.10 172480 +linkedlist 13 1507400 removeMiddleElement 2.22 173512 +linkedlist 13 1507400 removeLastElement 2.09 173300 +linkedlist 14 2508600 removeFirstElement 14.47 271296 +linkedlist 14 2508600 removeMiddleElement 14.12 267908 +linkedlist 14 2508600 removeLastElement 14.26 271692 +linkedlist 15 292200 removeFirstElement 2.01 123776 +linkedlist 15 292200 removeMiddleElement 2.01 127540 +linkedlist 15 292200 removeLastElement 2.04 127860 +linkedlist 16 374000 removeFirstElement 2.01 129380 +linkedlist 16 374000 removeMiddleElement 2.13 135328 +linkedlist 16 374000 removeLastElement 2.07 131884 +linkedlist 17 1163200 removeFirstElement 2.03 165416 +linkedlist 17 1163200 removeMiddleElement 2.06 157088 +linkedlist 17 1163200 removeLastElement 2.06 160604 +linkedlist 18 676800 removeFirstElement 1.99 139452 +linkedlist 18 676800 removeMiddleElement 1.93 140292 +linkedlist 18 676800 removeLastElement 2.12 142372 +linkedlist 19 2778900 removeFirstElement 13.56 266500 +linkedlist 19 2778900 removeMiddleElement 15.97 271260 +linkedlist 19 2778900 removeLastElement 16.85 269748 +linkedlist 20 2418500 removeFirstElement 15.44 269496 +linkedlist 20 2418500 removeMiddleElement 14.28 270976 +linkedlist 20 2418500 removeLastElement 15.36 267692 +linkedlist 21 2612800 removeFirstElement 16.50 267764 +linkedlist 21 2612800 removeMiddleElement 15.20 267652 +linkedlist 21 2612800 removeLastElement 15.60 271580 +linkedlist 22 1935200 removeFirstElement 15.58 264672 +linkedlist 22 1935200 removeMiddleElement 2.05 186512 +linkedlist 22 1935200 removeLastElement 2.25 192296 +linkedlist 23 3070200 removeFirstElement 17.63 270936 +linkedlist 23 3070200 removeMiddleElement 17.89 271764 +linkedlist 23 3070200 removeLastElement 14.22 270328 +linkedlist 24 1558200 removeFirstElement 1.98 176160 +linkedlist 24 1558200 removeMiddleElement 2.11 172912 +linkedlist 24 1558200 removeLastElement 2.05 176136 +linkedlist 25 2007600 removeFirstElement 15.03 273628 +linkedlist 25 2007600 removeMiddleElement 15.33 267624 +linkedlist 25 2007600 removeLastElement 15.33 267592 +linkedlist 26 753800 removeFirstElement 2.05 143988 +linkedlist 26 753800 removeMiddleElement 2.14 147560 +linkedlist 26 753800 removeLastElement 2.10 144960 +linkedlist 27 1163100 removeFirstElement 2.13 160796 +linkedlist 27 1163100 removeMiddleElement 2.00 160052 +linkedlist 27 1163100 removeLastElement 2.02 163260 +linkedlist 28 2788200 removeFirstElement 16.57 269184 +linkedlist 28 2788200 removeMiddleElement 15.46 267312 +linkedlist 28 2788200 removeLastElement 14.84 272584 +linkedlist 29 3217000 removeFirstElement 15.89 268292 +linkedlist 29 3217000 removeMiddleElement 17.26 266684 +linkedlist 29 3217000 removeLastElement 14.39 270392 +linkedlist 30 1633800 removeFirstElement 2.26 178248 +linkedlist 30 1633800 removeMiddleElement 2.07 177576 +linkedlist 30 1633800 removeLastElement 2.11 181852 diff --git a/P4a/test.sh b/P4a/test.sh index d4c7b4d544d1113f69e8d7ce2f0786680aa2696f..0b2e4447fb357da2b56ed64695af7762fcccf437 100755 --- a/P4a/test.sh +++ b/P4a/test.sh @@ -5,18 +5,16 @@ opPossible=("getFirst" "getMiddle" "getLast" "removeFirst" "removeMid" "removeLa echo -n "" > test.dat data=test.dat -echo -e "Structure\tTaille\tOp\tRecur\tTemps\tMemoire" >> $data -for struct in arraylist +echo -e "Structure\tRec\tTaille\tOp\tTemps\tMemoire" >> $data +for struct in $1 do - for taille in 1000 100000 1000000 + for recurence in $(seq 30) do + taille=$(( RANDOM % 100000 ))00 for op in $2 do - for recurence in $(seq 10) - do - res=`(/usr/bin/time -f "%U\t%M" java src/app/Maine.java $struct $taille $op $recurence > /dev/null) 2>&1` - echo -e "$struct\t$taille\t${opPossible[op]}\t$recurence\t$res\t" >> $data - done + res=`(/usr/bin/time -f "%U\t%M" java src/app/Maine.java $struct $taille $op $recurence > /dev/null) 2>&1` + echo -e "$struct\t$recurence\t$taille\t$op\t$res\t" >> $data done done done diff --git a/P4a/test2.dat b/P4a/test2.dat new file mode 100644 index 0000000000000000000000000000000000000000..5e3cd901499dba2b0e412b258379853e77776dbd --- /dev/null +++ b/P4a/test2.dat @@ -0,0 +1,180 @@ +linkedlist 1 777600 getFirst 2.06 142616 +linkedlist 1 777600 getMiddle 2.06 143512 +linkedlist 1 777600 getLast 1.96 148568 +linkedlist 2 1573500 getFirst 1.90 171704 +linkedlist 2 1573500 getMiddle 2.20 177236 +linkedlist 2 1573500 getLast 2.03 178064 +linkedlist 3 2533000 getFirst 16.38 268792 +linkedlist 3 2533000 getMiddle 18.65 269384 +linkedlist 3 2533000 getLast 17.11 267008 +linkedlist 4 76800 getFirst 2.01 117024 +linkedlist 4 76800 getMiddle 2.08 115280 +linkedlist 4 76800 getLast 1.92 120420 +linkedlist 5 173700 getFirst 2.07 123320 +linkedlist 5 173700 getMiddle 2.00 121720 +linkedlist 5 173700 getLast 1.99 125624 +linkedlist 6 774900 getFirst 2.06 148888 +linkedlist 6 774900 getMiddle 2.13 144968 +linkedlist 6 774900 getLast 1.96 144684 +linkedlist 7 2070100 getFirst 17.88 265956 +linkedlist 7 2070100 getMiddle 16.57 265004 +linkedlist 7 2070100 getLast 16.92 268320 +linkedlist 8 2578400 getFirst 16.16 266008 +linkedlist 8 2578400 getMiddle 14.95 266580 +linkedlist 8 2578400 getLast 17.14 267476 +linkedlist 9 2865300 getFirst 14.20 270668 +linkedlist 9 2865300 getMiddle 16.61 275904 +linkedlist 9 2865300 getLast 15.62 272292 +linkedlist 10 1743000 getFirst 2.03 181292 +linkedlist 10 1743000 getMiddle 2.03 181196 +linkedlist 10 1743000 getLast 1.99 182248 +linkedlist 11 1270700 getFirst 2.15 163308 +linkedlist 11 1270700 getMiddle 2.18 159112 +linkedlist 11 1270700 getLast 2.09 165740 +linkedlist 12 2919400 getFirst 16.42 271548 +linkedlist 12 2919400 getMiddle 15.39 272204 +linkedlist 12 2919400 getLast 13.60 266544 +linkedlist 13 567500 getFirst 2.08 133332 +linkedlist 13 567500 getMiddle 2.10 133580 +linkedlist 13 567500 getLast 1.97 134828 +linkedlist 14 765600 getFirst 2.02 139456 +linkedlist 14 765600 getMiddle 1.99 142268 +linkedlist 14 765600 getLast 2.09 145180 +linkedlist 15 112600 getFirst 1.99 117708 +linkedlist 15 112600 getMiddle 2.04 119416 +linkedlist 15 112600 getLast 2.00 118948 +linkedlist 16 2495100 getFirst 13.99 265732 +linkedlist 16 2495100 getMiddle 16.57 268628 +linkedlist 16 2495100 getLast 19.11 268712 +linkedlist 17 3019200 getFirst 17.25 271788 +linkedlist 17 3019200 getMiddle 16.31 274256 +linkedlist 17 3019200 getLast 14.84 269100 +linkedlist 18 524500 getFirst 2.01 136628 +linkedlist 18 524500 getMiddle 2.06 135348 +linkedlist 18 524500 getLast 2.03 137348 +linkedlist 19 1511700 getFirst 1.93 169680 +linkedlist 19 1511700 getMiddle 2.02 169544 +linkedlist 19 1511700 getLast 2.01 173376 +linkedlist 20 108400 getFirst 2.01 120104 +linkedlist 20 108400 getMiddle 2.08 117808 +linkedlist 20 108400 getLast 2.04 124108 +linkedlist 21 1583500 getFirst 2.07 175928 +linkedlist 21 1583500 getMiddle 2.14 180300 +linkedlist 21 1583500 getLast 1.96 178352 +linkedlist 22 287000 getFirst 2.01 126552 +linkedlist 22 287000 getMiddle 1.97 124156 +linkedlist 22 287000 getLast 2.03 123460 +linkedlist 23 1637600 getFirst 2.06 179652 +linkedlist 23 1637600 getMiddle 2.18 180452 +linkedlist 23 1637600 getLast 2.06 178428 +linkedlist 24 2690500 getFirst 14.70 273256 +linkedlist 24 2690500 getMiddle 16.18 273648 +linkedlist 24 2690500 getLast 17.78 269280 +linkedlist 25 3251600 getFirst 16.59 272928 +linkedlist 25 3251600 getMiddle 19.04 272112 +linkedlist 25 3251600 getLast 15.41 269508 +linkedlist 26 2460200 getFirst 17.04 272836 +linkedlist 26 2460200 getMiddle 15.95 272764 +linkedlist 26 2460200 getLast 16.63 268424 +linkedlist 27 3072800 getFirst 18.18 270484 +linkedlist 27 3072800 getMiddle 15.53 266056 +linkedlist 27 3072800 getLast 18.40 267816 +linkedlist 28 3176500 getFirst 17.07 269200 +linkedlist 28 3176500 getMiddle 16.69 270192 +linkedlist 28 3176500 getLast 17.00 271524 +linkedlist 29 2036900 getFirst 15.01 270252 +linkedlist 29 2036900 getMiddle 16.77 267816 +linkedlist 29 2036900 getLast 18.84 269164 +linkedlist 30 2955300 getFirst 16.42 270560 +linkedlist 30 2955300 getMiddle 19.38 265664 +linkedlist 30 2955300 getLast 16.69 269132 +vector 1 1437100 getFirst 2.11 160780 +vector 1 1437100 getMiddle 2.14 163188 +vector 1 1437100 getLast 2.20 166156 +vector 2 52500 getFirst 2.02 112288 +vector 2 52500 getMiddle 2.03 113980 +vector 2 52500 getLast 2.01 114208 +vector 3 2234200 getFirst 2.32 179788 +vector 3 2234200 getMiddle 2.16 175780 +vector 3 2234200 getLast 2.16 174796 +vector 4 1706200 getFirst 2.23 170908 +vector 4 1706200 getMiddle 2.17 166236 +vector 4 1706200 getLast 2.14 167180 +vector 5 864800 getFirst 2.08 138608 +vector 5 864800 getMiddle 2.10 142784 +vector 5 864800 getLast 2.07 143964 +vector 6 92100 getFirst 2.04 119452 +vector 6 92100 getMiddle 1.99 116152 +vector 6 92100 getLast 2.03 114268 +vector 7 2650900 getFirst 2.34 207284 +vector 7 2650900 getMiddle 2.25 207948 +vector 7 2650900 getLast 2.21 205568 +vector 8 3199200 getFirst 2.18 217368 +vector 8 3199200 getMiddle 2.22 212260 +vector 8 3199200 getLast 2.23 212956 +vector 9 603100 getFirst 2.05 128408 +vector 9 603100 getMiddle 2.05 129676 +vector 9 603100 getLast 2.06 124064 +vector 10 2156200 getFirst 2.18 175288 +vector 10 2156200 getMiddle 2.17 175160 +vector 10 2156200 getLast 2.03 173396 +vector 11 2754300 getFirst 2.33 217172 +vector 11 2754300 getMiddle 2.24 209352 +vector 11 2754300 getLast 2.27 212128 +vector 12 481700 getFirst 2.08 125360 +vector 12 481700 getMiddle 2.03 124028 +vector 12 481700 getLast 2.11 125648 +vector 13 2304700 getFirst 2.27 182396 +vector 13 2304700 getMiddle 2.30 180736 +vector 13 2304700 getLast 2.11 177424 +vector 14 1078600 getFirst 2.09 150220 +vector 14 1078600 getMiddle 2.04 144432 +vector 14 1078600 getLast 1.94 147704 +vector 15 2145600 getFirst 2.22 175300 +vector 15 2145600 getMiddle 2.10 176540 +vector 15 2145600 getLast 2.02 172148 +vector 16 1018700 getFirst 2.08 145456 +vector 16 1018700 getMiddle 2.09 149212 +vector 16 1018700 getLast 2.02 149584 +vector 17 1551400 getFirst 2.15 169464 +vector 17 1551400 getMiddle 2.03 167628 +vector 17 1551400 getLast 2.12 164436 +vector 18 954700 getFirst 1.91 140044 +vector 18 954700 getMiddle 1.99 143980 +vector 18 954700 getLast 1.92 145852 +vector 19 3059700 getFirst 2.18 217760 +vector 19 3059700 getMiddle 2.36 217596 +vector 19 3059700 getLast 2.21 212768 +vector 20 2902100 getFirst 2.31 210560 +vector 20 2902100 getMiddle 2.16 217000 +vector 20 2902100 getLast 2.13 211236 +vector 21 1972900 getFirst 2.18 176036 +vector 21 1972900 getMiddle 2.10 174120 +vector 21 1972900 getLast 2.00 170588 +vector 22 2091600 getFirst 2.16 178256 +vector 22 2091600 getMiddle 2.15 175232 +vector 22 2091600 getLast 2.00 171760 +vector 23 954900 getFirst 1.93 143432 +vector 23 954900 getMiddle 1.87 143624 +vector 23 954900 getLast 1.99 146572 +vector 24 567900 getFirst 2.03 127760 +vector 24 567900 getMiddle 2.06 129068 +vector 24 567900 getLast 1.96 129148 +vector 25 770600 getFirst 1.98 142436 +vector 25 770600 getMiddle 1.90 143240 +vector 25 770600 getLast 1.91 143620 +vector 26 2096600 getFirst 1.93 174288 +vector 26 2096600 getMiddle 2.07 173356 +vector 26 2096600 getLast 2.09 173724 +vector 27 72600 getFirst 2.00 114536 +vector 27 72600 getMiddle 2.03 113120 +vector 27 72600 getLast 2.02 113200 +vector 28 1850700 getFirst 2.03 173716 +vector 28 1850700 getMiddle 2.09 172816 +vector 28 1850700 getLast 2.23 169300 +vector 29 1920600 getFirst 2.02 172324 +vector 29 1920600 getMiddle 2.03 172436 +vector 29 1920600 getLast 2.16 169504 +vector 30 991600 getFirst 1.95 141404 +vector 30 991600 getMiddle 2.00 142472 +vector 30 991600 getLast 1.85 141976