#include "triInsertion.h" #include "triFusion.h" #include "triRapide.h" #include "utils.h" int main(int argc, char **argv){ if(argc<3){ printf("Usage: ./tri <option> <input.txt> d \n"); exit(1); } struct data data; initData(&data); if((strcmp(argv[1], "--insertion") == 0) || strcmp(argv[1], "-i")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("n:%d\n", n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld-", tab[i]); } printf("\n"); triInsertion(tab, n); printf("Insertion : "); for(int i = 0; i<n; i++){ printf("%ld-", tab[i]); } printf("\n"); free(tab); } else if(strcmp(argv[1], "--fusion")== 0 || strcmp(argv[1], "-f")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); triFusion(tab, n); printf("Fusion : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); free(tab); } else if((strcmp(argv[1], "--rapide")== 0) || strcmp(argv[1], "-r")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); triRapide(tab, n); printf("Rapide : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); free(tab); } else if (strcmp(argv[1], "-a") == 0) { int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); triInsertion(tab, n); printf("Insertion : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); triFusion(tab, n); printf("Fusion : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); triRapide(tab, n); printf("Rapide : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); free(tab); } else if (strcmp(argv[1], "-g") == 0) { if(argc<3){ printf("Usage: ./tri -g <max> <size>\n"); exit(1); } size_t max = atoi(argv[2]); size_t size = atoi(argv[3]); long* tab = generate_tab(max, size); for(size_t i = 0; i<size; i++){ printf("%ld ", tab[i]); } printf("."); printf("\n"); // free(tab); } else if((strcmp(argv[1], "--insertion-verbose") == 0) || strcmp(argv[1], "-iv")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); data.time = clock(); triInsertionVerbose(tab, n, &data); long new_time = (double)clock() - data.time; data.time = new_time; printf("Insertion : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); printData(data); free(tab); } else if((strcmp(argv[1], "--fusion-verbose") == 0) || strcmp(argv[1], "-fv")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); data.time = clock(); triFusionVerbose(tab, n, &data); long new_time = (double)clock() - data.time; data.time = new_time; printf("Fusion : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); printData(data); free(tab); } else if((strcmp(argv[1], "--rapide-verbose") == 0) || strcmp(argv[1], "-rv")== 0){ int n= 0; long *tab = readToTab(argv[2], &n); printf("Base : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); data.time = clock(); triInsertionVerbose(tab, n, &data); long new_time = (double)clock() - data.time; data.time = new_time; printf("Rapide : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); printData(data); free(tab); } else{ printf("Usage: ./tri <option> <input.txt> f\n"); } return 0; }