pytanie: najbardziej skuteczny sposób, aby uzyskać największą liczbę ze zbioru liczb całkowitychnajbardziej skuteczny sposób, aby uzyskać największą liczbę ze zbioru liczb całkowitych
Byłem niedawno dyskusji na to pytanie, miałem 2 rozwiązania w umyśle. 1) Iteracja nad kolekcją i znalezienie najwyższego numeru (kod poniżej) 2) Użyj algorytmu sortowania.
Pierwsza metoda będzie musiała O (n) wydajności
int getHighestNumber(ArrayList<Integer> list)
{
if(list != null && list.size() > 0)
{
if(list.size() == 1)
return list.get(0);
int maxNum = list.get(0);
for(int item:list)
{
if(item > maxNum)
maxNum = item;
}
return maxNum;
}
return null;
}
Moje pytanie brzmi: „Czy każdy algorytm sortowania go pobić (na skali czasu) na danym wejściu do np. Czy kolekcja jest już posortowana lub nie?" Czy jest jakiś inny sposób lepszy od tego?
Jeśli nie wiesz czegoś o danych, każdy element może być potencjalnie najwyższy. –