#include "../Tris/triInsertion.h" #include "../Tris/triFusion.h" #include "../Tris/triRapide.h" #include "../Tris/triBulle.h" #include "../Tris/triRapideInsertion.h" #include "../Lib/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], "--rapideInsertion")== 0) || strcmp(argv[1], "-ri")== 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"); triRapideInsertion(tab, n); printf("Rapide : "); for(int i = 0; i<n; i++){ printf("%ld,", tab[i]); } printf("\n"); free(tab); } else if((strcmp(argv[1], "--bulle")== 0) || strcmp(argv[1], "-b")== 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"); triBulle(tab, n); // printf("Bulle : "); // 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<4){ 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], "-gt") == 0) { if(argc<4){ printf("Usage: ./tri -gt <max> <size>\n"); exit(1); } size_t max = atoi(argv[2]); size_t size = atoi(argv[3]); long* tab = generate_tab(max, size); triRapide(tab, size); for(size_t i = 0; i<size; i++){ printf("%ld ", tab[i]); } printf("."); printf("\n"); free(tab); } else if (strcmp(argv[1], "-gti") == 0) { if(argc<4){ printf("Usage: ./tri -gti <max> <size>\n"); exit(1); } size_t max = atoi(argv[2]); size_t size = atoi(argv[3]); long* tab = generate_tab(max, size); triRapide(tab, size); for(size_t i = 0; i < size; i++){ printf("%ld ", tab[size-i-1]); } printf("."); printf("\n"); free(tab); } else if (strcmp(argv[1], "-gtp") == 0) { if(argc<4){ printf("Usage: ./tri -gtp <max> <size>\n"); exit(1); } size_t max = atoi(argv[2]); size_t size = atoi(argv[3]); long* tab = generate_tab(max, size); triRapide(tab, size/2); 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; }