晚饭不好好吃,到底给不给零食?# Parenting - 为人父母
F*r
1 楼
这回这个问题可能和具体实现有关,就是k-way merge。
1)首先如果能够全部load进内存,是不是其实最好就是依序把它们放进连续内存,然
后直接sort。O(nlogn)
如果用heap的话,要么就是heap的每个element要有data+index(2.1),要么就是要有一
个size k的array存放每个array的active index,但是要决定具体要advance which
array的时候,worst case要把size k array所指向的element和heap top比较一次(2.2
):这本身复杂度就是k*n了。。。。另外虽然heap move down直接成堆复杂度是O(n),
但并不适用在这个case。也就是说用堆的话复杂度是O(nlogk)+ 更多内存 或者 O(n*k
).
这个理解对么?大家怎么看?
1)首先如果能够全部load进内存,是不是其实最好就是依序把它们放进连续内存,然
后直接sort。O(nlogn)
如果用heap的话,要么就是heap的每个element要有data+index(2.1),要么就是要有一
个size k的array存放每个array的active index,但是要决定具体要advance which
array的时候,worst case要把size k array所指向的element和heap top比较一次(2.2
):这本身复杂度就是k*n了。。。。另外虽然heap move down直接成堆复杂度是O(n),
但并不适用在这个case。也就是说用堆的话复杂度是O(nlogk)+ 更多内存 或者 O(n*k
).
这个理解对么?大家怎么看?