Chciałbym uzyskać największe 100 elementów z listy co najmniej 100000000 liczb.Jak uzyskać największe liczby z dużej liczby liczb?
Mogę posortować całą listę i po prostu wziąć ostatnie 100 elementów z posortowanej listy, ale byłoby to bardzo kosztowne zarówno pod względem pamięci, jak i czasu.
Czy istnieje jakiś łatwy, pytonowy sposób robienia tego?
To, czego chcę, to śledzenie funkcji zamiast czystego sortowania. Właściwie nie chcę tracić czasu na sortowanie elementów, które mnie nie interesują.
Na przykład, jest to funkcja chciałbym posiadać:
getSortedElements(100, lambda x,y:cmp(x,y))
Uwaga Ten wymóg jest tylko dla punktu widzenia wydajności.
Idź. Właśnie miałem zasugerować, że kolejka priorytetowa byłaby dobrym sposobem na poradzenie sobie z tym w połączeniu z algorytmem, który zasugerowałem. Nie będąc programistą Pythona, nie zdawałem sobie sprawy, że jest już dostępny. – tvanfosson