Ordenação Buble Sort
Segue o algoritmo que usamos na aula:
#include <iostream>
#include <ctime>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
const int MAX = 10;
int aleatorio(int menor, int maior) {
return rand() % (maior - menor + 1) + menor;
}
void printV(int V[], int n) {
printf("\nVetor: ");
for(int i = 0; i < n; i++)
printf("%3d ", V[i]);
printf("\n");
}
int bubleSort(int V[], int n) {
int i, j;
int aux, ncomp = 0, ntrocas = 0;
printV(V, MAX);
for(i = 0; i < n - 1; i++)
for(j = i + 1; j < n; j++) {
ncomp++; /* Calcula numero de comparacoes */
if(V[i] > V[j]) {
aux = V[i];
V[i] = V[j];
V[j] = aux;
ntrocas++; /* Calcula numero de trocas efetuadas */
printV(V, MAX);
}
}
printV(V, MAX);
printf("Comparacoes: %d, Trocas: %d\n\n", ncomp, ntrocas);
}
void inicializa(int V[], int n) {
srand((unsigned)time(0)); //para gerar números aleatórios reais.
for(int i = 0; i < n; i++)
V[i] = aleatorio(100, 500);
}
int main(int argc, char** argv) {
int vetor[MAX];
inicializa(vetor, MAX);
//printV(vetor, MAX);
bubleSort(vetor, MAX);
//printV(vetor, MAX);
return 0;
}
O algoritmo foi desenvolvido usando o compilador Dev-C++ configurado para C++.
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.