czesc,
Jak znalezc najmniejszy element w liscie ?
pozdr
posortowac i wybrac pierwszy/ostatni
zajebiste :-D
natomiast lubie sobie czasem popisać coś dla terningu.
LinkedList<Long> lista = new LinkedList<Long>();
for(int i = 0; i < 10; i++){
lista.add( Math.round(Math.random() * 100));
}
Iterator<Long> iter =lista.iterator();
long min;
if(iter.hasNext()){
min = iter.next();
long podr;
while(iter.hasNext()){
podr = iter.next();
if(min > podr)
min = podr;
}
System.out.println("\n Lista: " + lista);
System.out.println("\n\n min=" + min);
}else
System.out.println("Lista jest pusta");
Pomysł z sortowaniem jest mocno chybiony.
Pomysł z sortowaniem jest jak najbardziej w porządku. To co sam zaproponowałeś to najwolniejsze wyszukiwanie liniowe, któremu zwyczajowo niektórzy dodają przyrostek "slow" (np. slowSearch). :d
Na LinkedList nie ma dużo lepszej alternatywy, ale posortowanie pozwala raz stracić trochę czasu, żeby potem dość szybko wyszukiwać - szczególnie jeżeli lista implementuje RandomAccess (np. ArrayList). Wtedy można zastosować wyszukiwanie binarne, a listę utrzymywać stale posortowaną przez dodawanie kolejnych elementów na właściwych pozycjach. Nawet jeżeli jest to goła LinkedList, to często wstawianie nie musi być szybkie. Natomiast wyciąganie najmniejszego i największego najszybsze z możliwych (tylko koszt dostępu).
Krótko mówiąc buduje się posortowaną listę od samego początku i cały czas można wyciągać minima i maksima najszybciej jak to możliwe (szybciej się już nie da).
Szczery napisał(a)
http://lmgtfy.com/?q=java+min+elelemt+in+list
Pierwszy wynik fajny :)
po prostu założyłem że lista jest cały czas w innym porządku niż według rosnących/malejących wartości i jest to lista a nie tablica dynamiczna. Dlatego powiedziałem że sortowanie to nie był nienajlepszy pomysł. I też nie twierdze że to co napisałem jest najbardziej optymalne.