2012-09-05 3 views

ответ

0

В зависимости от размера колонки, вы могли бы сделать две простые вещи:

Run Макс один раз, удалить максимальный элемент, бегите макс, а затем снова у вас есть второе самое высокое значение.

В качестве альтернативы вы можете сортировать данные или использовать максимальную кучу для ее хранения. С отсортированными данными легче работать.

Для небольших наборов данных первый способ будет более эффективным. Для более крупных наборов имеет смысл сортировать его, прежде чем найти нужное значение.

+0

Для большого набора сортировка будет еще более тяжелой. Сортировка - это O (nlogn). На распределенной системе это будет еще хуже. – Navneet

+0

Да, но для большого набора данных, если вам нужно проходить его более одного раза, он становится O (n^2). Технически, перемещение списка дважды - O (2n), но сортировка была бы предпочтительной вообще (например, если бы он хотел найти наибольшие числа 'm'). – Kevin

Смежные вопросы