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;
}
#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
0 comentários:
Enviar um comentário