A Bubble em C
Por: Bianca H. Waskow • 11/11/2018 • Exam • 746 Palavras (3 Páginas) • 215 Visualizações
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 Aleat�rio = Gera 10 vetores com
cada tamanho, ordena e escreve no arquivo
-------------------------*/
printf("Caso Aleat�rio.\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 necess�rio)
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;
}
...