DAS5102 - Ordenação Bolha - Exemplo em C
De Aulas
Links relacionados: DAS5102 Fundamentos da Estrutura da Informação
bolha.h
1#ifndef BOLHA_H_INCLUDED
2#define BOLHA_H_INCLUDED
3
4typedef struct vetor Vetor;
5
6Vetor* vetor_cria(int tamanho);
7void vetor_mostrar(Vetor* v);
8void vetor_ordenar_bolha(Vetor* v);
9
10#endif // BOLHA_H_INCLUDED
bolha.c
1#include "bolha.h"
2#include <stdlib.h>
3#include <stdio.h>
4
5struct vetor
6{
7 int tamanho;
8 int* elemento;
9};
10
11Vetor* vetor_cria(int tamanho)
12{
13 Vetor* v = malloc (sizeof(Vetor));
14 v->tamanho = tamanho;
15 v->elemento = malloc (v->tamanho * sizeof(int));
16 int i;
17 for (i = 0; i < v->tamanho; i++)
18 {
19 v->elemento[i] = rand() % 100;
20 }
21 return v;
22}
23
24void vetor_mostrar(Vetor* v)
25{
26 int i;
27 printf("vetor : [ ");
28 for (i = 0; i < v->tamanho; i++)
29 {
30 printf("%d ", v->elemento[i]);
31 }
32 printf("]\n");
33}
34
35void vetor_ordenar_bolha(Vetor* v)
36{
37 int a, b, no;
38 for (a = v->tamanho - 1; a >= 0; a--)
39 {
40 for (b = 0; b < a; b++)
41 {
42 if (v->elemento[b] > v->elemento[b+1])
43 {
44 no = v->elemento[b];
45 v->elemento[b] = v->elemento[b+1];
46 v->elemento[b+1] = no;
47 }
48 vetor_mostrar(v);
49 }
50 }
51}
main.c
1#include <stdio.h>
2#include <stdlib.h>
3#include "bolha.h"
4
5int main()
6{
7 Vetor* vet = vetor_cria(10);
8 vetor_mostrar(vet);
9 vetor_ordenar_bolha(vet);
10 vetor_mostrar(vet);
11 return 0;
12}