//================================================================
// Nome Do Arquivo: quick.c
// File Name: quick.c
//
// Descrição: Implementação do algoritmo quicksort
// Description: Quick sort Algorithm
//================================================================
// Libs
#include <stdio.h>
#include <stdlib.h>
// Define uma constante
// Define a constant
#define MAX 10
// Protótipo da função de ordenação
// Ordination function prototype
void quick_sort(int *a, int left, int right);
// Função main
// Main Function
int main(int argc, char** argv)
{
int i, vet[MAX];
// Lê MAX ou 10 valores
// Read MAX or 10 values
for(i = 0; i < MAX; i++)
{
printf("Digite um valor: ");
scanf("%d", &vet[i]);
}
// Ordena os valores
// Order values
quick_sort(vet, 0, MAX - 1);
// Imprime os valores ordenados
// Print values in order ascendant
printf("nnValores ordenadosn");
for(i = 0; i < MAX; i++)
{
printf("%dn", vet[i]);
}
system("pause");
return 0;
}
// Função de Ordenação por Seleção
// Quick sort function
void quick_sort(int *a, int left, int right) {
int i, j, x, y;
i = left;
j = right;
x = a[(left + right) / 2];
while(i <= j) {
while(a[i] < x && i < right) {
i++;
}
while(a[j] > x && j > left) {
j--;
}
if(i <= j) {
y = a[i];
a[i] = a[j];
a[j] = y;
i++;
j--;
}
}
if(j > left) {
quick_sort(a, left, j);
}
if(i < right) {
quick_sort(a, i, right);
}
}
Algoritmo Quick Sort em C (Quicksort)
6 respostas