QuickSort - vetor de inteiro

Publicado por Fabio Curtis Volpe 09/04/2005

[ Hits: 15.975 ]

Download QuickSort.c




A quicksort é superior a todas as outras ordenações, e geralmente é considerada o melhor algoritmo de ordenação. É baseada por ordenação por trocas.

  



Esconder código-fonte

/***************************************************
 *   Fabio Curtis Volpe                                            *
 *   curtis_volpe@yahoo.com.br                                 *
 ***************************************************/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <stdio.h>
#include <stdlib.h>

#include <stdio.h>
#include <stdlib.h>

#define MAX 10

int v[MAX];

int main()
{
 int i;
  
 for(i=0; i<MAX; i++)
 {
   v[i]=rand();
 }
 for(i=0; i<MAX; i++)
    printf("%d\n",v[i]);
    
 qs(v, 0, MAX-1);

 printf("\nVetor Ordenado - QuickSort\n\n");

 for(i=0;i<MAX;i++)
    printf("%d\n", v[i]);
}

void qs(int *v, int left, int right)
{
  int i, j;
  int x, y;
  
  i=left; j=right;
  x=v[(left+right)/2];
  
  do {
    while(v[i]<x && i<right) i++;
    while(x<v[j] && j>left) j--;
    
    if(i<=j) {
      y=v[i];
      v[i]=v[j];
      v[j]=y;
      i++; j--;
     }
    }while(i<=j);
    
    if(left<j) qs(v, left, j);
    if(i<right) qs(v, i, right);
        
}

Scripts recomendados

Loop de Várias Váriáveis Em Um Único Laço "For" em C

Fila estática em C

Lista encadeada

Ordenação de dados

Introdução a Recursão


  

Comentários
[1] Comentário enviado por removido em 12/11/2007 - 20:10h

Excelente, código funcional e muito fácil de entender!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts