TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

A Bubble em C

Por:   •  11/11/2018  •  Exam  •  746 Palavras (3 Páginas)  •  218 Visualizações

Página 1 de 3

Bubble em C

#include

#include

#include

void bubble_sort(int *vet, int vetSize);

void troca(int *a, int *b);

int main(int argc, char const *argv[])

{

    int *vet,k,i,n;

    clock_t inicio, fim;

    double duracao;

   

        srand(time(NULL));   //funcao que aleatoriza os dados em C

   

    /*-------------------------

    Caso Aleatrio = Gera 10 vetores com

        cada tamanho, ordena e escreve no arquivo

    -------------------------*/

   

    printf("Caso Aleatrio.\n");

    for (n = 1000; n <= 100000; ){

        printf("\t%d: ",n);

       

        //Executar 10 vezes a ordena��o para poder fazer uma media

        for (k = 1; k <= 10; k++){

            //Alocacao de memoria (dependendo da linguagem nao eh necessrio)

                        vet = malloc(n * sizeof(int));

           

                        //Coloca um numero aleatorio entre 0 e n no vet[i]                                

            for(i = 0; i < n; i++)

                vet[i] = rand() % n;

   

   

                    //A CONTAGEM DE TEMPO DEVE SER FEITA APENAS NA ORDENACAO

            inicio = clock();

            bubble_sort(vet,n);

            fim = clock();

                    //Termina a contagem de tempo

                    

                    //Calcula o tempo de uma execucao

            duracao = (double)(fim - inicio)/CLOCKS_PER_SEC;

            printf("%f\t", duracao);

            free(vet);

        }

        printf("\n");

        if(n == 1000)

            n+=4000;

        else

            n+=5000;

   

    }  

}

void bubble_sort (int *vet, int vetSize) {

    int houveTroca = 1;

    while(houveTroca == 1) {

        houveTroca = 0;

        for (int i = 1; i < vetSize; i++) {

            if (vet[i] < vet[i - 1]) {

                troca(&vet[i],&vet[i-1]);

                houveTroca = 1;

            }

        }

        vetSize--;

    }

}

void troca(int *a, int *b){

        int temp = *a;

        *a = *b;

        *b = temp;

}

...

Baixar como (para membros premium)  txt (2 Kb)   pdf (76 Kb)   docx (746.7 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com