quarta-feira, 9 de maio de 2018

Algoritmo Bubble sort



Algoritmo Bubble sort

Bubble sort é um algoritmo de ordenação usado para colocar os elementos em uma determinada ordem, é possivel usa-lo para colocar os elementos em ordem crescente ou decrescente.

Principio de funcionamento

Este algoritmo é baseado num processo de comparação dos elementos adjacentes, e troca de posições caso seja necessário. Se o objectivo é obter os valores de um vector na ordem crescente o processo começa da seguinte forma. Compara-se o elemento da primeira posição com o elemento da segunda posição, se o primeiro elemento for maior, haverá troca de posições, em seguida compara-se o segundo com o terceiro, caso o segundo elemento seja maior que o terceiro haverá troca de posiçãos, esse processo é repetido até obter todos valores do array na ordem desejada. A figura abaixo ilustra esse processo.



 

Exemplo de Bubble sort em C

#include <stdio.h>
#include <stdlib.h>
int main(){
    int au[6] ={1,3,2,5,6,4} ;
    int i, j,t;
        for(i=0;i<6;i++){
            for(j=0;j<6;j++){
                if (au[i] > au[i+1]){
                    t=au[i];
                    au[i]=au[i+1];
                    au[i+1]=t;
                   
                }
             
             }
                 
           
        }
        for(i=0;i<6;i++){
            printf(" %i ",au[i]);
        }
        system("pause");
        return 0;
   
   
}


Exemplo Bubble sort em Ruby

def bubble_sort(array)
  n = array.length
  loop do
    swapped = false

    (n-1).times do |i|
      if array[i] > array[i+1]
        array[i], array[i+1] = array[i+1], array[i]
        swapped = true
      end
    end

    break if not swapped
  end

  array
end
 
 

Bubble Sort em Java

 
 public static void main(String args[]){
 int[] vet = {8, 9, 3, 5, 1};
 int aux = 0;
 int i = 0;
 
 System.out.println("Vetor desordenado: ");
 for(i = 0; i<5; i++){
  System.out.println(" "+vet[i]);
 }
 System.out.println(" ");
 
 for(i = 0; i<5; i++){
  for(int j = 0; j<4; j++){
   if(vet[j] > vet[j + 1]){
    aux = vet[j];
    vet[j] = vet[j+1];
    vet[j+1] = aux;
   }
  }
 }
 System.out.println("Vetor organizado:");
 for(i = 0; i<5; i++){
  System.out.println(" "+vet[i]);
 }
}
 

Bubble sort em Pascal


Program vector_crescente;
  var i,j,aux: integer;
     vet : array[1..5]of integer = (8,6,3,5,4);
Begin
   for i:=1 to 5 do
   begin
        for j:=1 to 4 do
        begin
     if vet[j]>vet[j+1]  then
           begin
               aux := vet[j];
               vet[j]:=vet[j+1];
               vet[j+1]:=aux;
           
           end;
        
        end;
   
   
   end;

    
   for i:= 1 to 5 do
       write(vet[i]);
       
  readkey();
   
 
  
End.

 
 References
https://www.tutorialspoint.com/data_structures_algorithms/bubble_sort_algorithm.htm
http://www.thecshandbook.com/Bubble_Sort

Share:

0 comentários:

Enviar um comentário

Seguidores

Visitantes do blog

Pesquisar neste blogue

posts recentes

Traduzir