Método de Ordenação Bolha

Publicado por Luciano Alexandre de Farias Silva (última atualização em 26/04/2013)

[ Hits: 14.303 ]

Homepage: http://www.tecsource.blogspot.com.br/

Download BuscaOrdLetra.cpp

Download 1366757768.bolha.cpp (versão 2)




Nesse script vemos o exemplo de utilização do método de ordenação bolha, ele implementa um pequeno bloco de código para pesquisar na sequência de letras já digitadas e ordenadas se essa sequência possui ou não determinada letra.

  



Versões atualizadas deste script

Versão 2 - Enviado por Luciano Alexandre de Farias Silva em 23/04/2013

Changelog: Um exemplo do método de ordenação bolha em C++, além de uma função para ordenar os caracteres de um vetor.

Download 1366757768.bolha.cpp


Esconder código-fonte

#include<iostream>
using namespace std;
char busca(char carac, int n, char x[100]) ;
void bubblesort(int n, char x[100]);

int main(void) {

char x[100], carac;
int n, i;
bool achou;



do {
   cout << "Quantos Caracteres?" <<endl;
   cin >> n;
   
      } while(n <= 0 || n > 100); 

cout << "Digite todos os caracteres:"<<endl; 
  
  
   for(i=0; i <= n-1 ; i++){
      cin >> x[i];
   }

bubblesort(n, x);
cout << "Vetor ordenado: " <<endl;

for(i = 0; i < n ; i++){
      cout << x[i] <<" "<<endl;
      }
   
   cout << "Digite o caractere que vc procura: "<<endl;
   cin >> carac;
   
   achou = busca(carac, n , x);
   
  if(achou){
     cout << "Caractere encontrado.";
  }else{
     cout << "Caractere não encontradO";
  }
  
 return 0; 
 }

   
   char busca(char carac, int n, char x[100] ) {
      
   
    bool achou = false;
   
   int i = 0;
    while ((i < n) && (!achou)){
      if(x[i] == carac) {
         achou = true;
         } else {
            i = i + 1;
          } 
   } 
   return achou;
}


void bubblesort( int n, char x[100]){
      float aux;
      int j, i;
      
      for(i = 0; i < n-1; i++){
         for(j=i+1; j < n ; j++){
            if(x[i] > x[j]){
               aux = x[i];
               x[i] = x[j];
               x[j] = aux;
            }
         }
   }

}

Scripts recomendados

Processo em background

Tabuada

Formatador do linux

Retorna o módulo de um número

Maior de dois numeros


  

Comentários
[1] Comentário enviado por Tadzio em 28/02/2013 - 16:54h

Não entendi, você fala em ordenar caracteres porém aux do sort é float?
Busca é declarado como char, mas retorna bool?
Na função, busca poderia ser usado for e break.
Aliás, se o array estiver ordenado, basta que o valor seja maior para busca() ser falso.

[2] Comentário enviado por LucianoAlexandre em 23/04/2013 - 19:53h

A variavel aux é float pois ela esta sendoutilizada para comparar se o valor émaior ou menos, mesmo trabalhando com caracteres mais eles possui um valor para serem ordenados caso mudasse-mos para char o código entraria em um loop infinio.
Realmente foi um erro de implementação a função buscar ser char mais retornar bool, mais de toda forma isso não interfere no bom exito do programa mais mesmo assim vou atualizar o código. vlw. E ela poderia sim ser implementada com for e break mais isso é opção.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts