Ordenação quicksort

Publicado por david sousa mota (última atualização em 20/10/2010)

[ Hits: 12.735 ]

Download problema5.c




Lista aleatória e método de ordenação quicksort na forma decrescente.

  



Esconder código-fonte

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

int aleatorio(int **p,int quantidade);
void quick_sort(int lista[],int tamanho);
void quick(int lista[],int esquerdo,int direito);

int main(){
  int lista[10];
    int *p;
    int contador;
    p = lista;
    aleatorio(&p,10);
     for(contador=0;contador<10;contador++){
        printf("%i\n",lista[contador]);
    }
  printf("\n\n");
        quick_sort(lista,10);
  for(contador=0;contador<10;contador++){
        printf("%i\n",lista[contador]);
    }
system("pause");    
return 0;
}
int aleatorio(int **p, int quantidade){
 
     struct tm *ptr;
     time_t lt;
     lt = time(NULL);
     ptr = gmtime(<);
     int conta;
     int b=10;
     for(conta=0;conta<=quantidade;conta++){
        if(conta%2 != 0){
         *p = ((int *)(ptr->tm_sec)) + b*quantidade*conta;
          p++;
          b+=10;
         }else
         {
         *p = ((int *)(ptr->tm_sec)) + b*quantidade*2*conta;
           p++;
         b+=-5;
         }
    }

}
void quick_sort(int lista[],int tamanho)
{   
    quick(lista,0,tamanho-1);
}
void quick(int lista[],int esquerdo,int direito)
{     
  register int i,j;
       int x,y;
       i = esquerdo; 
       j = direito;
       x = lista[(esquerdo+direito)/2];
       do{
           while(lista[i]>x && i<direito) i++;
           while(x>lista[j] && j>esquerdo) j--;
           if(i<=j){
              y = lista[i];
              lista[i] = lista[j];
              lista[j] = y;
              i++; 
              j--;
                       }
              }while(i<=j);
              if(esquerdo<j) quick(lista,esquerdo,j);
              if(i<direito) quick(lista,i,direito);     
}

Scripts recomendados

Dangerous Tux Game com gráficos

Calculando o número de Neper !

Algoritmo de Fatoração de Fermat (FFA) em C

Ponteiro para Ponteiro para Ponteiro

analisador palavras


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts