Skip to content

Instantly share code, notes, and snippets.

@divanibarbosa
Created November 30, 2023 01:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save divanibarbosa/b2eaacdd1e663027faa0ba6d6fab1c5f to your computer and use it in GitHub Desktop.
Save divanibarbosa/b2eaacdd1e663027faa0ba6d6fab1c5f to your computer and use it in GitHub Desktop.
Ordenação QuickSort em C
// Criado por: profa. Divani Barbosa Gavinier
// Curriculo Lattes: http://lattes.cnpq.br/8503400830635447
// divanibarbosa@gmail.com
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define n 10000
int v[n];
void QuickSort(int esq, int dir) {
int i = esq;
int j = dir;
int pivo = v [ (esq+dir)/2 ];
do {
while (v[i]<pivo && i<dir)
i++;
while (pivo<v[j] && j>esq)
j--;
if (i<=j) {
int aux = v[i];
v[i] = v[j];
v[j] = aux; i++; j--;
}
} while (i <= j);
if (esq < j) QuickSort(esq,j);
if (i < dir) QuickSort(i,dir);
}
int main() {
int i;
clock_t inicio, fim; /* variáveis inicio e fim do tipo clock_t usadas em contagem de tempo */
srand(time(NULL));
printf("Conteudo vetor de %d itens:\n",n);
for(i=0; i<n; i++) {
v[i] = rand()%1000;
printf("%d ",v[i]);
}
inicio = clock(); // inicia contagem do tempo
QuickSort(0,n);
fim = clock(); // finaliza a contagem de tempo
printf("\nConteudo vetor depois ordenacao:\n");
for(i=0; i<n; i++) {
printf("%d ",v[i]);
}
printf("\nTempo gasto ordenacao QuickSort: %f segundos.\n\n",(float)(fim - inicio)/CLOCKS_PER_SEC);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment