diff --git a/TP2/ggossaprodansR.png b/TP2/ggossaprodansR.png new file mode 100644 index 0000000000000000000000000000000000000000..90103439e1c741904d603f17a0f2e33373416a53 Binary files /dev/null and b/TP2/ggossaprodansR.png differ diff --git a/TP2/graphe.png b/TP2/graphe.png new file mode 100644 index 0000000000000000000000000000000000000000..96da04403435fea03749d82e9f2e3ba51a7509a0 Binary files /dev/null and b/TP2/graphe.png differ diff --git a/TP2/main b/TP2/main index 0391e232b899ed6e4727ed693515e67986eb03a2..1b062b64cd82cd6b2269449dc60159f1e9f37f47 100755 Binary files a/TP2/main and b/TP2/main differ diff --git a/TP2/main.c b/TP2/main.c index 625a32087c881feb0f778c03685bf9b4539e0ee9..a35c68de3a11fe0b49bb9bbb5af6618c7d41fcdc 100644 --- a/TP2/main.c +++ b/TP2/main.c @@ -7,8 +7,8 @@ #include "utils.h" int main(int argc, char *argv[]) { - if(argc != 4) { - printf("Usage: %s [typeAlgo] [taille] [isAfficher]\n", argv[0]); + if(argc != 5) { + printf("Usage: %s [typeAlgo] [taille] [typeTableau] [isAfficher]\n", argv[0]); exit(1); } @@ -16,9 +16,10 @@ int main(int argc, char *argv[]) { long taille = (long) atoi(argv[2]); long MAX = 50; long tab[taille]; - size_t afficher = (size_t) atoi(argv[3]); + char typeTable = argv[3][0]; + size_t afficher = (size_t) atoi(argv[4]); - genTab(tab, taille, MAX); + genTab(tab, taille, typeTable, MAX); switch(typeAlgo) { case 'i': diff --git a/TP2/test.R b/TP2/test.R index b8d6829d8392db50650e689ca4d17e1f2c2021af..9d98a9dc31ba5217346a74bf9244d1667de9feb3 100644 --- a/TP2/test.R +++ b/TP2/test.R @@ -1,7 +1,7 @@ library(ggplot2) perf <- read.table("test.dat", header = TRUE) -ggplot(perf, aes(x=taille, y=temps, group=algo, colour=as.character(algo))) + +ggplot(perf, aes(x=taille, y=temps, group=algo, colour=as.character(algo))) + facet_grid(algo ~ typeTableau) + geom_point() + geom_smooth() + - ggtitle("Graphe Tri insertion") + ggtitle("Graphes Comparaison Algos") -ggsave("testInsertion.png") +ggsave("graphe.png") diff --git a/TP2/test.dat b/TP2/test.dat index 63440b3c6a5f599859798ddd5b5050db1dda4591..682bb4ed2f134d73aab052214c15504b2d4eb4bd 100644 --- a/TP2/test.dat +++ b/TP2/test.dat @@ -1,31 +1,121 @@ -iTest taille temps mem algo -1 29547 0.50 1536 i -1 29547 0.05 1500 r -1 29547 0.00 1616 f -2 95952 5.42 2024 i -2 95952 0.52 2044 r -2 95952 0.02 2496 f -3 76455 3.37 1820 i -3 76455 0.33 1928 r -3 76455 0.02 2448 f -4 18234 0.20 1308 i -4 18234 0.02 1440 r -4 18234 0.00 1588 f -5 63457 2.34 1748 i -5 63457 0.23 1820 r -5 63457 0.00 2148 f -6 64394 2.41 1808 i -6 64394 0.24 1820 r -6 64394 0.00 2072 f -7 62040 2.24 1736 i -7 62040 0.22 1816 r -7 62040 0.01 1984 f -8 29203 0.50 1512 i -8 29203 0.05 1552 r -8 29203 0.00 1604 f -9 17117 0.17 1324 i -9 17117 0.02 1292 r -9 17117 0.00 1512 f -10 47762 1.34 1616 i -10 47762 0.13 1684 r -10 47762 0.00 2024 f +-e iTest taille temps mem algo typeTableau +-e 1 59296 2.17 1772 i a +-e 1 59296 0.00 1704 i r +-e 1 59296 4.47 1656 i i +-e 1 59296 0.00 1700 i c +-e 1 59296 0.23 1848 r a +-e 1 59296 11.35 5416 r r +-e 1 59296 7.77 5412 r i +-e 1 59296 11.25 5412 r c +-e 1 59296 0.01 1992 f a +-e 1 59296 0.01 1964 f r +-e 1 59296 0.00 2032 f i +-e 1 59296 0.00 1956 f c +-e 2 97794 6.03 1988 i a +-e 2 97794 0.00 1988 i r +-e 2 97794 12.13 1928 i i +-e 2 97794 0.00 2012 i c +-e 2 97794 0.61 2116 r a +-e 2 97794 30.32 8036 r r +-e 2 97794 20.98 8116 r i +-e 2 97794 30.33 8100 r c +-e 2 97794 0.01 2604 f a +-e 2 97794 0.01 2544 f r +-e 2 97794 0.01 2680 f i +-e 2 97794 0.01 2556 f c +-e 3 41540 1.08 1496 i a +-e 3 41540 0.00 1576 i r +-e 3 41540 2.17 1456 i i +-e 3 41540 0.00 1628 i c +-e 3 41540 0.11 1628 r a +-e 3 41540 5.49 4080 r r +-e 3 41540 3.82 4152 r i +-e 3 41540 5.39 4224 r c +-e 3 41540 0.00 1908 f a +-e 3 41540 0.00 1892 f r +-e 3 41540 0.00 1836 f i +-e 3 41540 0.00 1972 f c +-e 4 97964 5.95 1936 i a +-e 4 97964 0.00 2040 i r +-e 4 97964 12.07 1992 i i +-e 4 97964 0.00 2048 i c +-e 4 97964 0.62 2124 r a +-e 4 97964 32.03 8192 r r +-e 4 97964 21.83 8080 r i +-e 4 97964 30.63 8024 r c +-e 4 97964 0.02 2560 f a +-e 4 97964 0.01 2564 f r +-e 4 97964 0.01 2544 f i +-e 4 97964 0.01 2492 f c +-e 5 39669 1.00 1544 i a +-e 5 39669 0.00 1496 i r +-e 5 39669 2.03 1504 i i +-e 5 39669 0.00 1536 i c +-e 5 39669 0.10 1552 r a +-e 5 39669 5.03 4032 r r +-e 5 39669 3.44 3984 r i +-e 5 39669 5.00 4024 r c +-e 5 39669 0.00 1792 f a +-e 5 39669 0.00 1820 f r +-e 5 39669 0.00 1840 f i +-e 5 39669 0.00 1884 f c +-e 6 8038 0.04 1300 i a +-e 6 8038 0.00 1300 i r +-e 6 8038 0.08 1220 i i +-e 6 8038 0.00 1288 i c +-e 6 8038 0.00 1300 r a +-e 6 8038 0.20 1756 r r +-e 6 8038 0.14 1812 r i +-e 6 8038 0.21 1808 r c +-e 6 8038 0.00 1448 f a +-e 6 8038 0.00 1448 f r +-e 6 8038 0.00 1332 f i +-e 6 8038 0.00 1364 f c +-e 7 30705 0.59 1468 i a +-e 7 30705 0.00 1524 i r +-e 7 30705 1.19 1480 i i +-e 7 30705 0.00 1492 i c +-e 7 30705 0.06 1472 r a +-e 7 30705 3.02 3440 r r +-e 7 30705 2.08 3408 r i +-e 7 30705 3.00 3384 r c +-e 7 30705 0.00 1688 f a +-e 7 30705 0.00 1688 f r +-e 7 30705 0.00 1616 f i +-e 7 30705 0.00 1696 f c +-e 8 53435 1.81 1660 i a +-e 8 53435 0.00 1700 i r +-e 8 53435 3.66 1656 i i +-e 8 53435 0.00 1640 i c +-e 8 53435 0.18 1676 r a +-e 8 53435 9.15 4892 r r +-e 8 53435 6.50 5000 r i +-e 8 53435 9.16 4928 r c +-e 8 53435 0.01 1996 f a +-e 8 53435 0.00 1904 f r +-e 8 53435 0.00 1988 f i +-e 8 53435 0.00 1992 f c +-e 9 50961 1.61 1676 i a +-e 9 50961 0.00 1640 i r +-e 9 50961 3.30 1624 i i +-e 9 50961 0.00 1592 i c +-e 9 50961 0.17 1716 r a +-e 9 50961 8.31 4888 r r +-e 9 50961 5.85 4832 r i +-e 9 50961 8.27 4852 r c +-e 9 50961 0.00 1860 f a +-e 9 50961 0.00 1928 f r +-e 9 50961 0.00 1884 f i +-e 9 50961 0.00 1884 f c +-e 10 74748 3.49 1832 i a +-e 10 74748 0.00 1828 i r +-e 10 74748 7.11 1744 i i +-e 10 74748 0.00 1772 i c +-e 10 74748 0.37 1932 r a +-e 10 74748 17.97 6456 r r +-e 10 74748 12.53 6388 r i +-e 10 74748 18.00 6496 r c +-e 10 74748 0.01 2360 f a +-e 10 74748 0.01 2424 f r +-e 10 74748 0.01 2380 f i +-e 10 74748 0.01 2360 f c diff --git a/TP2/test.sh b/TP2/test.sh index 6cd82a0cfe6e64c4f5c972a1e58c410c701228e4..027e8ba3efde7d1522c79da0626662c3b091cfd8 100644 --- a/TP2/test.sh +++ b/TP2/test.sh @@ -3,7 +3,7 @@ affichage=0 #taille=100 -echo -e "iTest\ttaille\ttemps\tmem\talgo" +echo -e "iTest\ttaille\ttemps\tmem\talgo\ttypeTableau" for iTest in `seq 1 10` do @@ -12,7 +12,10 @@ do for algo in 'i' 'r' 'f' do - res=`( /usr/bin/time -f "%U\t%M" ./main $algo $taille $affichage > /dev/null ) 2>&1` - echo -e "$iTest\t$taille\t$res\t$algo" + for typeTableau in 'a' 'r' 'i' 'c' + do + res=`( /usr/bin/time -f "%U\t%M" ./main $algo $taille $typeTableau $affichage > /dev/null ) 2>&1` + echo -e "$iTest\t$taille\t$res\t$algo\t$typeTableau" + done done done diff --git a/TP2/testInsertion.png b/TP2/testInsertion.png deleted file mode 100644 index 0cc1c6f308f8e36e7b6e8cf5a17e23e77cbeaeca..0000000000000000000000000000000000000000 Binary files a/TP2/testInsertion.png and /dev/null differ diff --git a/TP2/utils.c b/TP2/utils.c index bd523d7bbe4e9a88b62a07f2ef00106b81352ec5..791c21c8fce431a5d5c7d2177d8033b7b70abda1 100644 --- a/TP2/utils.c +++ b/TP2/utils.c @@ -2,17 +2,54 @@ #include <stdlib.h> #include "utils.h" -void affichertab(long* T, int s){ - printf("[ "); - for(int i = 0; i < s-1; i++){ - printf("%d , ",T[i]); - } - printf("%d ]\n",T[s-1]); +void affichertab(long *T, int s) +{ + printf("[ "); + for (int i = 0; i < s - 1; i++) + { + printf("%d , ", T[i]); + } + printf("%d ]\n", T[s - 1]); } -void genTab(long* T, long taille, long MAX) { - // Generer le tableau - for(long i = 0; i < taille; ++i) { - T[i] = rand() % MAX; +void genTab(long *T, long taille, char type, long MAX) +{ + + switch (type) + { + case 'a': + //Tableau Aleatoire + for (long i = 0; i < taille; ++i) + { + T[i] = rand() % MAX; + } + break; + + case 'r': + //Tableau Rangé + for (long i = 0; i < taille; ++i) + { + T[i] = i; + } + break; + + case 'i': + //Tableau Rangé Inversé + for (long i = 0; i < taille; ++i) + { + T[i] = taille - i; + } + break; + + case 'c': + //Tableau Constant + for (long i = 0; i < taille; ++i) + { + T[i] = 0; + } + break; + + default: + break; } } diff --git a/TP2/utils.h b/TP2/utils.h index 0c016ab825d0f621678a3aabcaf2a997a62a02c8..15623a3956a537978db12072ac806e4c686b706e 100644 --- a/TP2/utils.h +++ b/TP2/utils.h @@ -2,4 +2,4 @@ #include <stdlib.h> void affichertab(long* T, int s); -void genTab(long* T, long taille, long MAX); +void genTab(long *T, long taille, char type, long MAX); diff --git a/TP2/utils.o b/TP2/utils.o index d487d9077196f1ca3ea5b3bf0dc114120a8837ff..e87f948dea0ae51bc726c30ea5220b7e9c5c1cfa 100644 Binary files a/TP2/utils.o and b/TP2/utils.o differ