최소 1000000 개의 숫자 목록에서 최대 100 개의 요소를 가져오고 싶습니다.엄청난 양의 숫자 중에서 가장 큰 숫자를 얻는 방법은 무엇입니까?
전체 목록을 정렬하고 정렬 된 목록의 마지막 100 개 요소 만 가져올 수 있지만 메모리와 시간면에서 매우 비쌉니다.
이 작업을 수행하는 기존의 쉬운 방법이 있습니까?
내가 원하는 것은 순수한 정렬 대신 함수를 따르는 것입니다. 실제로 나는 신경 쓰지 않는 요소를 정렬하는데 낭비하는 시간을 원하지 않습니다.
getSortedElements(100, lambda x,y:cmp(x,y))
주이 요구 사항은 성능 관점입니다 :
는 예를 들어, 내가 가진하고자하는 기능입니다.
여기 있습니다. 나는 우선 순위 큐가 내가 제안한 알고리즘과 함께 이것을 처리하는 좋은 방법이 될 것이라고 제안하려고했다. 파이썬 프로그래머가 아니기 때문에 이미 사용 가능하다는 것을 깨닫지 못했습니다. – tvanfosson