Skip to content
Snippets Groups Projects
main.c 4.98 KiB
Newer Older
Mickael Da Silva's avatar
Mickael Da Silva committed
#include "triInsertion.h"
#include "triFusion.h"
#include "triRapide.h"
Mickael Da Silva's avatar
Mickael Da Silva committed
#include "utils.h"
chafiol's avatar
chafiol committed
int main(int argc, char **argv){
chafiol's avatar
chafiol committed
    if(argc<3){
        printf("Usage: ./tri <option> <input.txt> d \n");
chafiol's avatar
chafiol committed
        exit(1);
    }
chafiol's avatar
chafiol committed
    struct data data;
    initData(&data);
chafiol's avatar
chafiol committed
    
chafiol's avatar
chafiol committed

chafiol's avatar
chafiol committed
    if((strcmp(argv[1], "--insertion") == 0) || strcmp(argv[1], "-i")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed

        // for(int i  = 0; i<n; i++){
        // if(i%20 == 0)
        //     printf("%ld\n",tab[i]);
        // else
        //     printf("%ld   ", tab[i]);
        
        // }
        // printf("\n");
chafiol's avatar
chafiol committed
        printf("n:%d\n", n);
chafiol's avatar
chafiol committed
        printf("Base      : ");
        for(int i  = 0; i<n; i++){
chafiol's avatar
chafiol committed
            // printf("i:%d cont:%ld\n", i, tab[i]);
chafiol's avatar
chafiol committed
        }
        printf("\n");
chafiol's avatar
chafiol committed
        triInsertion(tab, n);
        printf("Insertion : ");
        for(int i  = 0; i<n; i++){
            // printf("i:%d cont:%ld\n", i, tab[i]);
chafiol's avatar
chafiol committed
        }
        printf("\n");
chafiol's avatar
chafiol committed
        free(tab);
chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    else if(strcmp(argv[1], "--fusion")== 0 || strcmp(argv[1], "-f")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        printf("Base      : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        triFusion(tab, n);
Mickael Da Silva's avatar
Mickael Da Silva committed
        printf("Fusion    : ");
chafiol's avatar
chafiol committed
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        free(tab);
chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    else if((strcmp(argv[1], "--rapide")== 0) || strcmp(argv[1], "-r")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        printf("Base      : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        triRapide(tab, n);
        printf("Rapide    : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        free(tab);
chafiol's avatar
chafiol committed
    }
    else if (strcmp(argv[1], "-a") == 0)
    {
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        printf("Base      : ");
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        
chafiol's avatar
chafiol committed
        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");
chafiol's avatar
chafiol committed
        triRapide(tab, n);
chafiol's avatar
chafiol committed
        printf("Rapide    : ");
chafiol's avatar
chafiol committed
        for(int i  = 0; i<n; i++){
            printf("%ld,", tab[i]);
        }
        printf("\n");
chafiol's avatar
chafiol committed
        free(tab);
chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    else if (strcmp(argv[1], "-g") == 0)
    {
        if(argc<3){
chafiol's avatar
chafiol committed
            printf("Usage: ./tri -g <max> <size>\n");
chafiol's avatar
chafiol committed
            exit(1);
        }
chafiol's avatar
chafiol committed
        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++){
chafiol's avatar
chafiol committed
            printf("%ld ", tab[i]);
        }
        printf(".");
        printf("\n");
        
       // free(tab);
    } 
chafiol's avatar
chafiol committed
    else if((strcmp(argv[1], "--insertion-verbose") == 0) || strcmp(argv[1], "-iv")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        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);
chafiol's avatar
chafiol committed
        free(tab);
chafiol's avatar
chafiol committed
    }
     else if((strcmp(argv[1], "--fusion-verbose") == 0) || strcmp(argv[1], "-fv")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        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);
chafiol's avatar
chafiol committed
        free(tab);

chafiol's avatar
chafiol committed
    }
     else if((strcmp(argv[1], "--rapide-verbose") == 0) || strcmp(argv[1], "-rv")== 0){
chafiol's avatar
chafiol committed
        int n= 0;
        long *tab = readToTab(argv[2], &n);
chafiol's avatar
chafiol committed
        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);
chafiol's avatar
chafiol committed
        free(tab);

chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    else{
chafiol's avatar
chafiol committed
        printf("Usage: ./tri <option> <input.txt> f\n");
chafiol's avatar
chafiol committed
    }
chafiol's avatar
chafiol committed
    return 0;
}