wie kann ich am besten die kleinste 2 elemente von einer Liste kriegen

Muaadh moha

Neues Mitglied
Hallo zusammen,,
ich bin ein neues MItglied und heiße Muaadh....... ich hoffe ,dass ich wie gute antworte auch ein Willkommen von euch bekommen....

hehehe ich will nit lange reden und möchte mal ehrlich zu der Frage kommen...also es geht um die Listen,,,

ich habe eine Liste aus der muss ich die 2 kleinste Elemente kriegen und dann die verschmelzen... wie kann ich am besten die finden...ich hänge ja seit 3 tagen in diesem aufgabe und kann nicht weiterkommen.... bitte um ihrer Hilfe...^^

danke sehr

natürlich für ausführlich Beschreibung bin ich auch bereit....
 
Ganz primitive Lösung:

Java:
List<Integer> list = new LinkedList<Integer>() {
	{
		add(1);
		add(5);
		add(8);
		add(40);
		add(6);
		add(1337);
		add(14);
		add(18);
		add(0);
	}
};

int smallesElement = Integer.MAX_VALUE;
int secondarySmallesElement = Integer.MAX_VALUE;

for(int i:list)
{
	if(i < smallesElement)
	{
		secondarySmallesElement = smallesElement;
		smallesElement = i;
	}
	else if(i < secondarySmallesElement)
		secondarySmallesElement = i;
}
System.out.println(smallesElement);
System.out.println(secondarySmallesElement);

Dafür braucht man dafür wohl auch keine Erklärung.
 
Man könnte auch die Liste sortieren [c]Collections.sort(list);[/c] und dann get(0) und get(1) sich holen.
Oder zwei mal Collections.min(list), wobei das wohl ineffizienter wäre 🙂
 
ich habe eine Liste aus der muss ich die 2 kleinste Elemente kriegen und dann die verschmelzen... wie kann ich am besten die finden...ich hänge ja seit 3 tagen in diesem aufgabe und kann nicht weiterkommen.... bitte um ihrer Hilfe...^^
Geht's hier auch um einen Huffman Baum? Eventuell seit Ihr ja an der gleichen Uni und könnt gegenseitig Erfahrungen/ Kenntnisse austauschen ;-)
http://www.java-forum.org/java-basics-anfaenger-themen/119928-huffman-algorithmus.html#post773771
 
@Volvagia:
Damit es mit allfällig mehreren gleichen Werten geht, müsste man noch aus [c]if(i < smallesElement)[/c] ein [c]if(i <= smallesElement)[/c] machen.
 

Zurück
Oben