Algoritmo de ordenação Quick Sort
Publicado por João Cristiano Monteiro da Silva (última atualização em 30/11/2010)
[ Hits: 10.314 ]
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); }
Classe para manipulação e conversão de datas para std::string em C++
Agenda feita em C usando árvore binária
Jogo Final Fight - Haggar (com gráficos)
Joguinho de labirinto usando as setas do teclado
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
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Instalação de Ubuntu em SSD (interno) como se fosse um dispositivo ext... (2)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (10)