From c558dfb3cc87b4ae8a31d71271ffba37c2d60612 Mon Sep 17 00:00:00 2001 From: Samuh <quentin@liane.net> Date: Wed, 24 Mar 2021 15:06:52 +0100 Subject: [PATCH] question 3 TP4 --- TP4.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/TP4.c b/TP4.c index cb9ebe3..b16be82 100644 --- a/TP4.c +++ b/TP4.c @@ -142,7 +142,8 @@ void aff_tab(unsigned long *t, int size) // ----------------------------------------------------------------------------------------------------------------------------------------- -void simplifie_label(unsigned long *label, unsigned long size) +// renvoie le nombre de label et les renommes +unsigned long simplifie_label(unsigned long *label, unsigned long size) { unsigned long c = 0; unsigned long smallest = size; @@ -168,6 +169,7 @@ void simplifie_label(unsigned long *label, unsigned long size) } c++; } + return c - 1; } void output_graphe(adjlist *g, unsigned long *label, char *filename) @@ -255,7 +257,7 @@ int main(int argc, char **argv) } adjlist *g; - time_t t1, t2, t3; + time_t t1, t2, t3, t4; // PARSING t1 = time(NULL); @@ -263,8 +265,11 @@ int main(int argc, char **argv) printf("Reading edgelist from file %s\n", argv[1]); g = al_readedgelist(argv[1]); t3 = time(NULL); - printf("- edge list time = %ldh%ldm%lds\n",(t3-t1)/3600,((t3-t1)%3600)/60,((t3-t1)%60)); - // printf("- edge list time = %I64dh%I64dm%I64ds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60)); +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) + printf("- edge list time = %I64dh%I64dm%I64ds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60)); +#else + printf("- edge list time = %ldh%ldm%lds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60)); +#endif printf("Number of nodes: %lu\n", g->n); printf("Number of edges: %lu\n", g->e); @@ -274,18 +279,31 @@ int main(int argc, char **argv) t2 = time(NULL); - printf("- Overall time = %ldh%ldm%lds\n",(t2-t1)/3600,((t2-t1)%3600)/60,((t2-t1)%60)); - // printf("- Overall time = %I64dh%I64dm%I64ds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60)); +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) + printf("- Overall time = %I64dh%I64dm%I64ds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60)); +#else + printf("- Overall time = %ldh%ldm%lds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60)); +#endif srand(time(NULL)); unsigned long *res = label_propagation(g); - simplifie_label(res, g->n); + t4 = time(NULL); + +#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) + printf("- label_propagation time = %I64dh%I64dm%I64ds\n", (t4 - t2) / 3600, ((t4 - t2) % 3600) / 60, ((t4 - t2) % 60)); +#else + printf("- label_propagation time = %ldh%ldm%lds\n", (t4 - t2) / 3600, ((t4 - t2) % 3600) / 60, ((t4 - t2) % 60)); +#endif + + unsigned long nb = simplifie_label(res, g->n); + printf("%li label different\n", nb); output_graphe(g, res, "toto.dot"); printf("run {dot -Tpng -o out.png toto.dot} pour avoir une visualisation de la solution\n"); + free(res); free_adjlist(g); return 0; } -- GitLab