Algoritmo de ordenação Quick Sort
Publicado por João Cristiano Monteiro da Silva (última atualização em 30/11/2010)
[ Hits: 10.493 ]
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);
}
Jogo Final Fight - Haggar (com gráficos)
Jogo Simon (Genius) - com gráficos
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Assisti Avatar 3: Fogo e Cinzas (0)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (40)









