quarta-feira, 28 de setembro de 2011

QUESTIONÁRIO 05 - ORDENAÇÃO E MÉTODO BOLHA


1)      Ordenar é um processo de rearranjar um conjunto de objetos em uma ordem ascendente/crescente ou descendente/decrescente. Qual a importância da ordenação para qualquer processo e para informática? Dê exemplos práticos de utilização. Defina a complexidade dos métodos de ordenação e a sua classificação.

2)      Qual é a classificação dos métodos de ordenação? Qual a diferença entre eles? Quais são os métodos de ordenação mais utilizados ou principais?

3)      A ordenação pelo método bolha é um dos mais simples. Qual a principal característica do método ou como ele funciona?
Resposta: O primeiro elemento é comparado com o segundo, se uma inversão for encontrada, a troca é feita. Em seguida, independente se houve ou não troca após a primeira comparação, o segundo elemento é comparado com o terceiro, e, caso uma inversão seja encontrada, a troca é feita. O processo continua até que o penúltimo elemento seja comparado com o último.
4)      Qual é a classificação do método bolha? Qual o seu grau de complexidade?
Reposta:   N  > N  >  log(N)
E o seu grau de complexidade é pequeno , necessita de muita memória para opera-lo
5)      Dê exemplo de aplicação do método bolha, com as comparações, trocas e iterações.
Resposta: Bom um exemplo que pode ser dado é classificação  numerica  de forma  cresente  de uma derterminadaposta
1         40 30 20 10 50
2         30 20 10 40 50
3         20 10 30 40 50
4         10 20 30 40 50
5         10 20 30 40 50 --> Todos os numeros Ordenados.

6)      Demonstre o código-fonte do método bolha e comente o mesmo.
Resposta: #include <stdio.h>  
#include <stdlib.h>
 
  void bubble(int a[],int n)  
  {  
 
  int i,j,t;  
  for(i=n-2;i>=0;i--) {  
  for(j=0;j<=i;j++) {  
 
  if(a[j]>a[j+1]) {  
                  t=a[j];  
                  a[j]=a[j+1];  
                  a[j+1]=t;  
                  }  
                  }  

  } //Final do 1º FOR  
 
  } //Final da Função
 
  int main() {  
 
      int a[100],n,i;  
 
      system("pause");  
 
      printf("\n\n Entre com o total de numeros a serem sorteados:\n\n ");  
      scanf("%d",&n);  
 
      for( i=0;i<=n-1;i++) {
     
      printf("\n\n Entre com o valor inteiro %d:    ",i+1);  
      scanf("%d",&a[i]);  
      }