miércoles, 3 de julio de 2013
Códigos del método de QuickSort
:::::::::::::::::::::::::::::::::::::::::::
ORDENACION NUMEROS
:::::::::::::::::::::::::::::::::::::::::::
#include<stdio.h>
#include<conio.h>
void quicksort(int x[],int prim,int ult);
int main()
{ int tam,i;
printf(":::::::::::::Quick Sort:::::::::::::\n\n");
printf("\tDigita cuantos numeros deseas ordenar: ");
scanf("%d",& tam);
int x[tam];
printf("\n\nIntroduce %d valores: \n",tam);
for(i=0;i<tam;i++)
scanf("%d",&x[i]);
quicksort(x,0,tam-1);
printf("\t\nValores Ordenados: \n");
for(i=0;i<tam;i++)
printf(" %d",x[i]);
getch();
return 0;
}
void quicksort(int x[],int prim,int ult)
{ int pivot,j,temp,i;
if(prim<ult)
{ pivot=prim;
i=prim;
j=ult;
while(i<j)
{ while(x[i]<= x[pivot]&& i<ult)
i++;
while(x[j]>x[pivot])
j--;
if(i<j)
{ temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
temp=x[pivot];
x[pivot]=x[j];
x[j]=temp;
quicksort(x,prim,j-1);
quicksort(x,j+1,ult);
}
}
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
ORDENACION CADENAS
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
#include <stdio.h>
#include <string.h>
void quicksort(char nombre[15][15],int izquierda,int derecha)
{
int i,j;
char y[15],*x;
i=izquierda;
j=derecha;
x=nombre[(izquierda+derecha)/2];
do{
while((strcmp(nombre[i],x)<0) && (i<derecha)) i++;
while((strcmp(nombre[j],x)>0) && (j>izquierda)) j--;
if(i<=j)
{
strcpy(y,nombre[i]);
strcpy(nombre[i],nombre[j]);
strcpy(nombre[j],y);
i++;
j--;
}
}while(i<=j);
if(izquierda<j) quicksort(nombre,izquierda,j);
if(i<derecha) quicksort(nombre,i,derecha);
}
int main()
{
char nombre[15][15];
int n,i,izquierda,derecha,respuesta;
do
{
printf("\nCuantos nombres deseas ordenar:\n ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Introduzca el nombre de la persona %d: ",i+1);
scanf("%s",nombre[i]);
}
izquierda=0;
derecha=n-1;
quicksort(nombre,izquierda,derecha);
printf("Los nombres en orden alfabetico:\n");
for(i=0;i<n;i++)
printf("\n %d.-%s",i+1,nombre[i]);
printf("\nEjecutar programa de nuevo? (SI = 1 y NO = 0)\n");
scanf("%d",&respuesta);
}while(respuesta==1);
return 0;
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario