Usuários online

sexta-feira, 2 de março de 2018

Ciência da Computação - Algoritmos e Estruturas de Dados III - Aula 02/03/2018

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.

LinkWithin

Related Posts Plugin for WordPress, Blogger...

NOSSO OBJETIVO

OBJETIVO

Este blog será usado para divulgação de minhas ideias, notícias sobre tecnologia, disponibilização de links para download de materiais diversos (incluindo materiais didáticos -- que poderão ser usados em minhas aulas e/ou cursos). Gostaria de DEIXAR BEM CLARO que quaisquer materiais disponibilizados através deste blog são, tão somente, para acompanhamento de aulas e/ou cursos, e não constituem de modo algum, aulas na modalidade "ensino à distância" (EAD). Alunos têm total acesso aos materiais disponíveis, mas somente como tutoriais passo a passo. Apostilas disponibilizadas através deste blog não são materiais obrigatórios em disciplinas cursadas ou cursos ministrados.

RESPONSABILIDADE

O autor deste blog não é responsável pelo mau uso, intencional ou não, de qualquer código de programa disponibilizado aqui. Os códigos de programas disponíveis neste blog para download é e serão sempre, e tão somente, para uso didático durante o aprendizado. Seja bem-vindo.