#include
#include
#include
# define N 10
void tamano(int* a);
void llenar(int m[],int a);
void presentar(int m[],int a);
void burbuja(int m[], int a);
void shell(int m[N], int a);
void QuikShort(int m[], int izq, int der);
void insercionbinaria(int m[], int a);
int main() {
int m[N];
int a, t=0,izq=1;
srand(time(NULL));
tamano(&a);
llenar(m,a);
presentar(m,a);
printf("Ingrese el metodo de ordenacion por: \n 1. Burbuja \n 2. Shell \n 3. Quick Short \n 4. Insercion Binaria \n");
scanf("%d",&t);
if (t==1){
printf(" Vector Ordenado por metodo Burbuja: \n");
burbuja(m,a);
presentar(m,a);
}
if (t==2){
printf(" Vector Ordenado por Shell: \n");
shell(m,a);
presentar(m,a);
}
if (t==3){
printf(" Vector Ordenado por Quick Short: \n");
QuikShort(m,izq,a);
presentar(m,a);
}
if (t==4){
printf(" Vector Ordenado por Insercion Binaria: \n");
insercionbinaria(m,a);
presentar(m,a);
}
if (t<1|| t>4){
printf("Seleccione correctamente el metodo de ordenacion \n");
}
}
void tamano(int* a){
printf("Ingrese la longitud del vector: ");
scanf("%d",a);
}
void llenar(int m[],int a){
int i;
for(i=1; i<=a;i++){
m[i]=rand()%10;
}
}
void presentar(int m[],int a){
int i;
for(i=1; i<=a;i++){
printf("%3d",m[i]);
printf("\n");
}
}
//Metodos de Ordenacion
void burbuja(int m[], int a){
int i,j;
int aux;
for(i=1; i<=a-1; i++){
for(j=1; j<=a-1; j++){
if(m[j]>m[j+1]){
aux=m[j];
m[j]=m[j+1];
m[j+1]=aux;
}
}
}
}
void shell(int m[N], int a){
int salto, k, j, ord;
int aux;
salto=a;
while(salto>1){
salto=salto/2;
do{
ord=1;
for(j=1; j<=a-1-salto; j++){
k=j+salto;
if(m[j]>m[k]){
aux=m[j];
m[j]=m[k];
m[k]=aux;
ord=0;
}
}
}while(!ord);
}
}
void QuikShort(int m[], int izq, int der){
int i=izq,j=der;
int x,w;
x=m[(izq+der)/2];
do{
while(m[i]
while(x
if(i<=j){
w=m[i];
m[i]=m[j];
m[j]=w;
i++;
j--;
}
}while(i<=j);
if(izq
};
void insercionbinaria(int m[], int a){
int i,j,p,u,c;
int aux;
for(i=1; i<=a; i++ ){
aux=m[i];
p=0;
u=i-1;
while(p<=u){
c=(p+u)/2;
if(m[c]>aux)
u=c-1;
else
p=c+1;
}
for(j=i-1; j>=p; j--)
m[j+1]=m[j];
m[p]=aux;
}
}