Ordenação quicksort
Publicado por david sousa mota (última atualização em 20/10/2010)
[ Hits: 12.963 ]
Lista aleatória e método de ordenação quicksort na forma decrescente.
#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); }
3º EP - Poli USP - Angry Birds (angry bixos)
Nenhum comentário foi encontrado.
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Alguém poderia me ajudar a escolher peças pra montar um desktop? (2)
modo de emergencia no linux [RESOLVIDO] (1)