How to find the largest list item
, ( ) .
, :
Element biggest = list.get(0);
for (Element e : list) {
if (e.compareWith(biggest) > 0) {
biggest = e;
}
}
, , 1 000 000 , . , .
...
â1: . , , , ... .
# 2: ceiling(log2(nos_players)) , . "" / , , , , , ceiling(log2(nos_players)).
:
List players = ...
while (players.size() > 1) {
List winners = new ArrayList();
Iterator it = players.iterator();
while (it.hasNext()) {
Player p1 = it.next();
if (it.hasNext()) {
Player p2 = it.next();
int result = p1.compareTo(p2);
if (result < 0) {
winners.add(p2);
} else if (result > 0) {
winners.add(p1);
} else {
throw new Exception("draws are impossible in chess");
}
} else {
winners.add(p1);
}
}
players = winners;
}
( : , N 2 ceiling(log2(N)), , 2 . 2 , ceiling(log2(N)) ... , .)
# 2 , , - ; .. . , , A B , A - , B. , , . , , "" , .
, - . , , ( ), .
( ), , . N . , . /, () " " -. , / .