Algoritmo de ordenação Quick Sort
Publicado por João Cristiano Monteiro da Silva (última atualização em 30/11/2010)
[ Hits: 10.320 ]
Algoritmo que implementa a ordenação quick sort, aplicando o conceito de template (permite reutilização de código) e partição, conceito amplamente abordado para explicar esse tipo de ordenação.
#include <iostream> #include <stdlib.h> using namespace std; template <typename T> void troca(T *a, T *b) { T aux = *a; *a = *b; *b = aux; } template <typename T> void quicksort(T aux[], int inicio, int fim) { if (fim > inicio) { int retorno = particao(aux, inicio, fim); quicksort(aux, inicio, retorno - 1); quicksort(aux, retorno + 1, fim); } } template <typename T> int particao(T aux[], int inicio, int fim) { int temp = inicio; while (true) { while (aux[inicio] <= aux[temp]) inicio++; while (aux[fim] > aux[temp]) fim--; if (fim < inicio) { troca(&aux[temp], &aux[fim]); return (fim); } troca(&aux[inicio], &aux[fim]); } } int main(int argc, char **argv) { //int vetor[8] = {25, 32, 12, -8, 9, 220, 5, 1}; //double vetor[8] = {25.56, 32.12, 12.89, -8.54, 9.08, 220.54, 5.48, 1.56}; char vetor[8] = {'h', 'a', 'd', 'e', 'f', 'g', 'b', 'c'}; cout << "Vetor original: " << endl; for (int i = 0; i < 8; i++) { cout << "Posicao " << i << " = " << vetor[i] << endl; } cout << endl << endl; cout << "Vetor ordenado: " << endl; quicksort(vetor, 0, 7); for (int i = 0; i < 8; i++) { cout << "Posicao " << i << " = " << vetor[i] << endl; } return (EXIT_SUCCESS); }
Memória compartilhada, semáforo e criação de processos
Contar elementos de uma lista encadeada
Derrubando SyGate Profissional Firewall !
Nenhum coment�rio foi encontrado.
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Git config não aplica configurações
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Exibir detalhes de vídeo no Caja (0)
Criar um servidor de arquivos local com o ubuntu server e o samba? (2)
Como bloquear e desbloquear papel de parede no Ubuntu 24.04 (3)