Я хотел бы получить самые большие 100 элементов из списка не менее 100000000 номеров.Как получить самые большие номера из огромного количества номеров?
Я мог бы отсортировать весь список и просто взять последние 100 элементов из отсортированного списка, но это было бы очень дорого с точки зрения как памяти, так и времени.
Есть ли какой-либо существующий простой, питонический способ сделать это?
То, что я хочу, это функция вместо чистой сортировки. На самом деле я не хочу тратить время на сортировку элементов, которые мне все равно.
Например, это функция, которую я хотел бы иметь:
getSortedElements(100, lambda x,y:cmp(x,y))
Примечание это требование только для точки зрения производительности.
Там вы идете. Я как раз собирался предположить, что приоритетная очередь будет хорошим способом справиться с этим в сочетании с предложенным мной алгоритмом. Не будучи программистом на питоне, я не понимал, что он уже доступен. – tvanfosson