#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 10

void BubbleSort (int lista[], int num_eltos) {
int temp;
int i,j;
for (i=0;i<num_eltos;i++)
  for (j=i+1;j<num_eltos;j++)
    if (lista[i]>lista[j]) {    // verifica se o primeiro elemento é maior
      temp=lista[i];            // que o segundo. Caso positivo,
      lista[i]=lista[j];        // troca os dois de posição.
      lista[j]=temp;            //
    }
}

void main() {
  int lista[N];
  int segundos;
  int i;

// Para obter uma sequencia interessante para ordenadção, vou gerar números
// aleatórios. Preciso, então, inicializar o gerador de números aleatórios
// com um número qualquer. O melhor número para inicializá-lo é o número de
// segundos transcorridos desde 1970 até hoje. Vamos lá...

// Primeiro, obtenho o número de segundos desde 1970 com a função time(NULL):
  segundos=time(NULL);
  
// Agora, inicializo o gerador de números aleatórios com a função srand
// recebendo o número de segundos como parâmetro
  srand(segundos);
  
// gera uma sequencia de numeros aleatórios. A cada vez que a função rand é
// chamada, gera um número diferente. Como os números são muito grandes,
// divido-os por 10 mil
  for (i=0;i<N;i++)
    lista[i]=rand()/10000;

// imprimo a lista
  printf("Antes...\n");
  for (i=0;i<N;i++)
    printf ("%d\n",lista[i]);

// ordeno
  BubbleSort(lista,N);

// imprimo de novo
  printf("\nDepois...\n");
  for (i=0;i<N;i++)
    printf ("%d\n",lista[i]);

}
