Ordenação quicksort

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

[ Hits: 13.222 ]

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

Leds da porta paralela com interface

Driver ATI que funciona

RPN (Notação Polar Revesa)

Busca em texto - Lista encadeada

jogo Sokoban (com gráficos)


  

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