Ordenação quicksort

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

[ Hits: 12.882 ]

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

Script para trocar o papel de parede do fluxbox em GTK

Fila bancária utilizando lista simplisment encadeada

Pilhas C/C++ - Analisador de expressões simples

asdfa

AIMG-mostrar imagem fraquimentada em pontos aleatórios


  

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