Pessoal,
Estou iniciando em Java e estou com uma dúvida em relação a um exemplo do livro Java Como Programar, que mostra como classificar valores de um array.
O exemplo usa um “for” que serve para controlar o número de passagens, mas o próximo “for” que controla o número de comparações, já percorre todas as posições do array ordenando-o. Achei estranho e fiz um teste inibindo o primeiro “for”… e o programa funcionou corretamente. Minha dúvida é a seguinte : Esse primeiro “for” tem alguma outra função que eu não esteja entendendo ?
Segue abaixo o programa para facilitar o entendimento.
[code]import java.awt.;
import javax.swing.;
public class BubbleSort extends JApplet {
public void init()
{
JTextArea AreaSaida = new JTextArea();
Container container = getContentPane();
container.add(AreaSaida);
int array[] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 };
String saida = "Números na ordem original\n";
//Acrescenta valores originais do array ao String saida
for (int cont = 0; cont < array.length; cont++)
saida += " " + array[cont];
Ordena(array); //ordena o array
saida += "\n\nNúmeros em ordem crescente\n";
//Acrescenta valores ordenados do array ao String saida
for (int cont = 0; cont < array.length; cont++)
saida += " " + array[cont];
AreaSaida.setText(saida);
}
//Método que ordena os elementos do array
public void Ordena (int array2[])
{
//laço para controlar o número de passagens
[b]for (int pass = 1; pass < array2.length; pass++) {[/b]
//laço para controlar o número de comparações
for (int element = 0; element < array2.length - 1; element++) {
//compara elementos adjacentes e os troca de lugar se
//o primeiro elemento for maior que o segundo elemento
if (array2[element] > array2[element + 1] )
troca(array2, element, element + 1);
} //fim do laço p/ controlar comparações
[b]} //fim do laço para controlar passagens[/b]
} //fim do método Ordena
//Método que troca dois elementos de um array
public void troca(int array3[], int num1, int num2)
{
int hold; //área de armazenamento temporário para troca
hold = array3[num1];
array3[num1] = array3[num2];
array3[num2] = hold;
}
} //Fim da Classe BubbleSort
[/code]
Obrigada,
Márcia.
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos para ficarem mais legíveis - Reifel[/color][/size] :joia: