Есть ли эффективный вычислительный способ найти верхние 2 записи в столбце, а не только верхний?Поиск второй по величине записи в столбце
Спасибо.
Есть ли эффективный вычислительный способ найти верхние 2 записи в столбце, а не только верхний?Поиск второй по величине записи в столбце
Спасибо.
В зависимости от размера колонки, вы могли бы сделать две простые вещи:
Run Макс один раз, удалить максимальный элемент, бегите макс, а затем снова у вас есть второе самое высокое значение.
В качестве альтернативы вы можете сортировать данные или использовать максимальную кучу для ее хранения. С отсортированными данными легче работать.
Для небольших наборов данных первый способ будет более эффективным. Для более крупных наборов имеет смысл сортировать его, прежде чем найти нужное значение.
Для большого набора сортировка будет еще более тяжелой. Сортировка - это O (nlogn). На распределенной системе это будет еще хуже. – Navneet
Да, но для большого набора данных, если вам нужно проходить его более одного раза, он становится O (n^2). Технически, перемещение списка дважды - O (2n), но сортировка была бы предпочтительной вообще (например, если бы он хотел найти наибольшие числа 'm'). – Kevin