查找第K个元素

时间:2015-12-01 03:59:05
【文件属性】:

文件名称:查找第K个元素

文件大小:1.06MB

文件格式:RAR

更新时间:2015-12-01 03:59:05

第k大的元素

已知两个等长的升序整数序列{a1, a2, ..., ak}和{b1, b2, ..., bk},求序列{ai+bj}的前k小元素,其中1≤i≤k且1≤j≤k,要求时间复杂度尽可能低。 思路:将(1,1,a1+b1)加入一个小根堆 while (堆非空且出堆的元素总数少于k个) 弹出堆顶元素(x, y, v) 将(x+1,y,a{x+1}+b{y})和(x,y+1,a{x}+b{y+1})加入堆中 (堆内元素间按v比较大小)


【文件预览】:
TheKthElement
----Debug()
--------Test.pdb(627KB)
--------Test.exe(30KB)
--------Test.ilk(306KB)
----ipch()
--------test-cfa16763()
----TheKthElement.suo(12KB)
----TheKthElement.sdf(1.71MB)
----Test()
--------Test.vcxproj.user(143B)
--------Test.vcxproj.filters(962B)
--------Debug()
--------TheKthElement.cpp(2KB)
--------Test.vcxproj(4KB)
----Test.sdf(1.97MB)
----TheKthElement.sln(879B)

网友评论