Bubble Sort é um algoritmo de ordenação que classifica dados em ordem crescente.
Para cada dado ser ordenado verifica-se a primeira posição do vetor com a segunda, até que seja alcançado o final desse vetor, se a comparaçao entre uma posição do vetor com a outra não estivar correta (crescente) ela vai guardar esse valor, para que na próxima repetição este seja colocado no local correto, repetindo esse processo até que todos os dados estejam em ordem. Como analógia tem se que: os dados mais "leves" "flutuam" para o início do vetor e os mais "pesados" vão para o final.
Analizando apenas a função Bubble Sort verificasse que ela tem O(n²), ou seja, o tempo de execução dela é quadrático, fazendo com que a CPU do computador demande mais tempo na sua execução.
Imagem: Algorithms Explained: Computational Complexity - https://www.youtube.com/watch?v=47GRtdHOKMg
Pode ser utilizada nos mais diversos tipos de casos e dados, como em sites, apps, entre outros, tendo uma simples e fácil implementação. Mas pode não ser tão boa quando se lida com vários dados, principalmente se forem dados sigilosos como dados de contas e senhas, devido a sua alta complexidade, o que pode reduzir a velocidades do site ou app em que ele está sendo implementado.