Ordenamiento QuickSort

Pablo Mateo Segura

/* Este programa ordena una serie de números acabada en 0
   mediante el método quickSort */

#include<stdio.h>
#include<stdlib.h>
void quicksort(int s[], int izq, int der);

int main()
{
    int v[50];
    int k=0, l;
    printf("Introduce una serie de numeros acabados en 0: ");

    scanf("%d", &v[k]);
    while(v[k]!=0)
    {
        k++;
        scanf("%d", &v[k]);
    }

    quicksort(v, 0, k-1);
    printf("\n\n");
    printf("Los numeros ordenados: ");
    for(l=0;l<k;l++)
        printf("%d ", v[l]);

    printf("\n\n");

    return 0;
}

void quicksort(int s[], int izq, int der)
{
    int i, j;
    int x, y;
    i=izq; j=der;
    x=s[(izq+der)/2];

    do{
        while(s[i]<x&&i<der) i++;
        while(s[j]>x&&j>izq) j--;
        if(i<=j)
        {
            y=s[i];
            s[i]=s[j];
            s[j]=y;
            i++;j--;
        }
    }while(i<=j);

    if(izq<j) quicksort (s, izq, j);
    if(i<der) quicksort (s, i, der);
}
Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s