flaco te mando unos tps de la facultad por hay te sirven, cualquier cosa mandame un mail
/*
------------------------
Version 2.4
------------------------
Incluye Cuenta de distribuciones caso general que
contempla rango de datos que pueden comenzar en cero o no
quickSort para todos los casos
todos los metodos de ordenamiento funcionan
*/
#include<stdio.h>
#include<fstream.h>
#include<stdlib.h>
#include<time.h>
typedef int Clave;
typedef struct {Clave key;char cad[62];} Registro;
//typedef struct {Clave key;} Registro;
typedef int Tamano;
typedef struct {Clave key; Tamano posicion;} Indice;
void burbujeo(Registro *,Tamano );
void seleccion(Registro *, Tamano );
void insercion(Registro *, Tamano );
void shell(Registro *, Tamano );
void shellInverso (Registro *, Tamano);
void ordenInversoCuenta(Registro *, Tamano );
void cuentaDistribucionGeneral (Registro *, Tamano, Tamano,Tamano);
void cuentaDistribucionParticular (Registro *, Tamano);
void quickSort( Registro *, int , int );
void fusion ( Registro *, Tamano);
void ordenFusion ( Registro *, Registro *, Tamano , Tamano );
void ordenLogico(Registro *, Tamano );
void ordenFisicoNoInsitu(Registro *, Tamano );
void ordenShellIndice (Indice *, Tamano );
void cargaRegistroOrdenado(Registro *,Tamano );
void cargaRegistroOrdenInverso(Registro *,Tamano );
void cargaRegistroAlAzar(Registro *,Tamano );
void intercambi