#include <stdio.h>
void qs(int lista[],int limite_izq,int limite_der)
{
int izq,der,temporal,pivote;
izq=limite_izq;
der = limite_der;
pivote = lista[(izq+der)/2];
do{
while(lista[izq]<pivote && izq<limite_der)izq++;
while(pivote<lista[der] && der > limite_izq)der--;
if(izq <=der)
{
temporal= lista[izq];
lista[izq]=lista[der];
lista[der]=temporal;
izq++;
der--;
}
}while(izq<=der);
if(limite_izq<der){qs(lista,limite_izq,der);}
if(limite_der>izq){qs(lista,izq,limite_der);}
}
void quicksort(int lista[],int n)
{
qs(lista,0,n-1);
}
int main(int argc, const char * argv[])
{
system("COLOR 1F");
system("TITLE QUICKSORT");
int lista[10];
int size = sizeof(lista)/sizeof(int);
int i;
for (i=0;i<=9;i++)
{
printf("\ndame un numero para asignarlo a la posocion numero %i:\n", i+1);
scanf("%i", & lista[i]);
}
printf("el arreglo tiene los siguientes valores:\n");
for(i=0;i<=9;i++)
{
printf("%i |", lista[i]);
}
printf("\npulse una tecla para continuar");
getch();
printf("\n");
quicksort(lista,size);
printf("el arreglo tiene los siguientes valores:\n");
for(i=0;i<=9;i++)
{
printf("%i |", lista[i]);
}
printf("\npulse una tecla para continuar");
getch();
return 0;
}

No hay comentarios:
Publicar un comentario