An error occurred while loading the file. Please try again.
-
chafiol authoredcdcb3213
Forked from
GOSSA JULIEN / P4z
This fork has diverged from the upstream repository.
main.c 7.27 KiB
#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;
}