Crie um programa em linguagem C que avalie e compare o desempenho de dois métodos de ordenação: um dos simples e outro dos rápidos (à sua escolha). Os algoritmos devem ordenar os mesmos vetores aleatórios, que devem começar com poucos números e gradualmente aumentarem de tamanho para atingir os limites práticos de cada método.
Ajude-me, por favor!
(Preciso para dia 29 sexta feira)
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define TAM 10
int main()
{
setlocale(LC_ALL, "");
int numeros[TAM];
int i, aux, contador;
printf("Entre com dez números para preencher o array, e pressione enter após digitar cada um:\n");
for (i = 0; i < TAM; i++) {
scanf("%d", &numeros[i]);
}
printf("Ordem atual dos itens no array:\n");
for (i = 0; i < TAM; i++) {
printf("%4d", numeros[i]);
}
// Algoritmo de ordenação Bubblesort:
for (contador = 1; contador < TAM; contador++) {
for (i = 0; i < TAM - 1; i++) {
if (numeros[i] > numeros[i + 1]) {
aux = numeros[i];
numeros[i] = numeros[i + 1];
numeros[i + 1] = aux;
}
}
}
printf("\nElementos do array em ordem crescente:\n");
for (i = 0; i < TAM; i++) {
printf("%4d", numeros[i]);
}
printf("\n");
return 0;
}
Explicação:
Metodo da Bolha (Bubble Sort) esse é o método mais lento...
Faz um teste pra ve se funciona. Ta um array com 10 posições esse exemplo.
Tem outros métodos mais eficientesm por seleção, por inserção, etc.