Bubble Sort Entendendo Algorítmo
por Eduardo D'Avila
1. Vídeo
2. Continuação da Definição
2.1. Com podemos verificar, o elemento com maior valor (9) foi ficou na última posição do vetor, esse processo vai se repetir até que o vetor esteja ordenado. Na próxima iteração, o segundo maior valor será ordenado para penúltima posição do vetor. Essa ordenação lembra como as bolhas num tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo, Bubble Sort (literalmente "flutuação por Bolha"). Na próxima iteração, todo esse processo vai se repetir, vejamos: {8, 3, 5, 1, 9}: 8 > 3 = Sim, realizar troca. Reordenando o vetor: {3, 8, 5, 1, 9}: 8 > 5 = Sim, realizar troca. Reordenando o vetor: {3, 5, 8, 1, 9}: 8 > 1 = Sim, realiza troca. Reordenando o vetor: {3, 5, 1, 8, 9}: 8 > 9 = Não, vetor permanece como está. Com isso é feito uma segunda iteração por completo. Novamente o processo vai se repetir. {3, 5, 1, 8, 9}: 3 > 5 = Não, vetor permanece como está. {3, 5, 1, 8, 9}: 5 > 1 = Sim, realiza troca. Reordenando o vetor: {3, 1, 5, 8, 9}: 5 >8 = Não, vetor permanece como está. {3, 1, 5, 8, 9}: 8 > 9 = Não, vetor permanece como está. Terceira iteração realizada por completo. O processo se repete novamente: {3, 1, 5, 8, 9}: 3 > 1 = Sim, realiza troca. Reordenando o vetor: {1, 3, 5, 8, 9}: 3 > 5 = Não, vetor permanece como está. {1, 3, 5, 8, 9}: 5 > 8 = Não, vetor permanece como está. {1, 3, 5, 8, 9}: 8 > 9 = Não, vetor permanece como está. Terminada a quarta iteração, o vetor está ordenado em ordem crescente. Podemos observar que o vetor tem cinco posições e foram feitas quatro iterações, por quê?
3. Definição Inicial
3.1. Definição Uma forma de trabalhar com o algoritmo Bubble Sort é comparando os elementos adjacentes (dois a dois), por exemplo: compara-se a primeira posição do vetor com a segunda, na segunda iteração (repetição), compara-se a segunda posição do vetor com a terceira, e assim sucessivamente. De acordo com o algoritmo, podemos ordenar o vetor de forma crescente ou decrescente.
3.1.1. Ordenar um vetor em ordem crescente composto pelos elementos {8, 9, 3, 5, 1}
3.1.1.1. for (i = n_elem; i > 1; i--) { for(j = 0; j < i; j++) { if(vect[j] > vect[j+1]) { aux = vect[j]; vect[j] = vect[j+1]; vect[j+1] = aux; } } }
3.1.1.1.1. for (i = n_elem; i > 1; i--) Start para que o FOR de J inice a comparação .