não classifica

5 respostas
H

Boa noite amigos,

O código abaixo não está classificando os dois últimos valores da matriz. Alguma luz

Muito obrigado

Abs

package aulas;

import javax.swing.JOptionPane;

class vertor_crescente5

{

public static void main (String args[])

{

int A[] = {5,3,9,6,4};

int aux;

String mensagem = " ";

mensagem = mensagem+ "O valor de A[0] = "+A[0];

mensagem = mensagem+ "\nO valor de A[1] = "+A[1];

mensagem = mensagem+ "\nO valor de A[2] = "+A[2];

mensagem = mensagem+ "\nO valor de A[3] = "+A[3];

mensagem = mensagem+ "\nO valor de A[4] = "+A[4];
for (int i=0; i <= 3;i++)
    {
        if (A[i] > A[i+1])
        {
            aux = A[i];
            A[i] = A[i+1];
            A[i+1] = aux;
        };
    }
        mensagem= mensagem+ "\n\nO valor ordenado de A[0] ="+A[0];
        mensagem= mensagem+ "\nO valor ordenado de A[1] ="+A[1];
        mensagem= mensagem+ "\nO valor ordenado de A[2] ="+A[2];
        mensagem= mensagem+ "\nO valor ordenado de A[3] ="+A[3];
        mensagem= mensagem+ "\nO valor ordenado de A[4] ="+A[4];
        JOptionPane.showMessageDialog(null, mensagem);
    }

}

5 Respostas

War_Paz

Como assim "não classifica"?

*-*-*-*-*-*-*-*-*-*-*-*-*-*

Entendi, use Listas: são bem mais flexíveis que arrays. Aqui o seu mesmo código, mas usando listas:

package war; 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.swing.JOptionPane;

public class Inicio{ 
	public static void main (String args[]) {
		List<Integer> c = new ArrayList<Integer>();
		c.add(5);
		c.add(3);
		c.add(9);
		c.add(6);
		c.add(4);
		String mensagem = " "; 
		mensagem = mensagem+ "O valor de A[0] = "+c.get(0); 
		mensagem = mensagem+ "\nO valor de A[1] = "+c.get(1); 
		mensagem = mensagem+ "\nO valor de A[2] = "+c.get(2); 
		mensagem = mensagem+ "\nO valor de A[3] = "+c.get(3); 
		mensagem = mensagem+ "\nO valor de A[4] = "+c.get(4); 
		
		Collections.sort(c); // Aqui ordenamos do menor para o maior, em uma só linha :D

		mensagem= mensagem+ "\n\nO valor ordenado de A[0] ="+c.get(0); 
		mensagem= mensagem+ "\nO valor ordenado de A[1] ="+c.get(1); 
		mensagem= mensagem+ "\nO valor ordenado de A[2] ="+c.get(2); 
		mensagem= mensagem+ "\nO valor ordenado de A[3] ="+c.get(3); 
		mensagem= mensagem+ "\nO valor ordenado de A[4] ="+c.get(4); 
		JOptionPane.showMessageDialog(null, mensagem); 
	} 
}
H

Bom dia War,

Muito obrigado pela dica. Estou fazendo um curso e os primeiros exercícios são básicos. Acho q ele ainda vai chegar em listas,
gostei

Muito obrigado

Abs

Rodrigo_Sasaki

Infelizmente listas e métodos prontos não vão ajudar ninguém a exercitar o cérebro :slight_smile:

É interessante querer desenvolver um algoritmo de ordenação.

Obviamente ninguém vai usar isso em uma situação de trabalho, a não ser que você seja realmente muito bom e implemente uma ordenação melhor do que as já prontas, e ainda assim, se for cabível.

Agora pra motivos de estudo, usar estruturas primitivas e forçar o cérebro a pensar em como implementar uma ordenação, é um ótimo exercício.

Seu algoritmo de ordenação me parece metade de um Bubble Sort. Acontece que você só percorre a lista uma vez. No Bubble Sort a lista é percorrida até que não haja mais nada a ser alterado, ou seja, quando percorrer a lista toda e nenhum elemento for trocado, aí você para de ordenar.

War_Paz

Rodrigo, não sei se foi aqui mesmo no GUJ ou em algum outro lugar que que vi isso mas acho interessante o dizer: “Não reinvente a roda”

Realmente concordo que é bom pra exercitar o cérebro, mas por que não utilizar, se já está pronto? :wink:

Rodrigo_Sasaki

War Paz:
Rodrigo, não sei se foi aqui mesmo no GUJ ou em algum outro lugar que que vi isso mas acho interessante o dizer: “Não reinvente a roda”

Realmente concordo que é bom pra exercitar o cérebro, mas por que não utilizar, se já está pronto? ;)

Funcionar funciona, disso não há dúvida. E no trabalho eu não escrevo algoritmos que já estão prontos. Mas ajudam muito na hora de aprender estruturas de dados, e aprender a como pensar nelas.

O foco é o desenvolvimento do raciocínio lógico, que pra profissionais da nossa área, é essencial

Não se ensina matemática a alunos da primeira série dando uma calculadora pra eles :slight_smile:

Criado 23 de janeiro de 2013
Ultima resposta 23 de jan. de 2013
Respostas 5
Participantes 3