求教两道关于排序的问题

nova255 2009-12-04 08:45:41
1.两个升序数组A[n]和B[m],找出这两个数组中所有数的第k个最小值,怎样才能使时间复杂度是O(logk)
2.有k 个按照非降顺序排列好的链表,链表中所有元素个数总和为n。如何设计一个时间复杂度不超过O(nlogk)的算法

谢谢
...全文
124 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MasterLuo 2009-12-12
  • 打赏
  • 举报
回复
第一题我现在没有想到好方法,是不是写错了?log(K)这个地方,个人初步觉得这个复杂度不可行。
第二题可以用一个堆维护的方法,只保留最小的K个值,且堆顶是K个值的最大值。如果有比堆顶更小的值,就把堆顶元素弹出来,再把更小的元素插入进去。这样最多进行N次操作,每次操作都是logK。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧