Browse code
feat: add working partial_sort
Showing 1 changed files
... | ... |
@@ -6,16 +6,20 @@ import heapq |
6 | 6 |
def file_iter(fil): |
7 | 7 |
the_line = 0 |
8 | 8 |
while the_line != '': |
9 |
- the_line = fil.readline() |
|
10 |
- yield the_line |
|
9 |
+ next_line = fil.readline().strip() |
|
10 |
+ if next_line != '': |
|
11 |
+ # yield int(next_line) |
|
12 |
+ yield next_line |
|
13 |
+ the_line = next_line |
|
11 | 14 |
|
12 | 15 |
def sorter(gen, len_): |
13 | 16 |
the_buffer = [] |
14 | 17 |
|
15 | 18 |
for the_line in gen: |
16 |
- # print("pushing: ", the_line, end='') |
|
19 |
+ # print("pushing: ", the_line) |
|
17 | 20 |
heapq.heappush(the_buffer, the_line) |
18 | 21 |
if len(the_buffer) == len_: |
22 |
+ # print("buffer_before: ", repr(the_buffer)) |
|
19 | 23 |
yield heapq.heappop(the_buffer) |
20 | 24 |
# print("buffer_after: ", repr(the_buffer)) |
21 | 25 |
|
... | ... |
@@ -26,5 +30,5 @@ def sorter(gen, len_): |
26 | 30 |
|
27 | 31 |
if __name__ == '__main__': |
28 | 32 |
import sys |
29 |
- for line in sorter(file_iter(sys.stdin), 10): |
|
30 |
- print(line, end='') |
|
33 |
+ for line in sorter(file_iter(sys.stdin), int(sys.argv[1])): |
|
34 |
+ print(line) |