#include <stdio.h>
#include <stdlib.h>
#include "tri_insertion.h"
#include "tri_rapide.h"
#include "tri_fusion.h"

#include "utils.h"

int main(int argc, char *argv[]) {
  if(argc != 6) {
    printf("Usage: %s [typeAlgo] [taille] [typeTableau] [isAfficher] [versionRap]\n", argv[0]);
    exit(1);
  }

  char typeAlgo = argv[1][0];
  long taille = (long) atoi(argv[2]);
  long MAX = 50;
  long *tab = malloc(sizeof(long) * taille);
  char typeTable = argv[3][0];
  size_t afficher = (size_t) atoi(argv[4]);
  int versionRap = (size_t) atoi(argv[5]);

  genTab(tab, taille, typeTable, MAX);

  switch(typeAlgo) {
    case 'i':
      triInsertion(tab,taille);

      if(afficher) {
        printf("Tri Insertion: \n");
        affichertab(tab,taille);
      }

      break;

    case 'r':
      triRapide(tab, taille, versionRap);

      if(afficher) {
        printf("Tri Rapide: \n");
        affichertab(tab,taille);
      }

      break;

    case 'f':
      triFusion(tab, taille);

      if(afficher) {
        printf("Tri Fusion: \n");
        affichertab(tab,taille);
      }
      break;
  }

  free(tab);

  return 0;
}