我试图排序并找到一个只包含3到4个不同整数的整数字符串的中位数.
我正在处理的数字量大约为2千万到2千5百万,我应该对向量进行排序,每次将新整数添加到向量中时找到中位数,并将中位数添加到单独的"总计"变量中每次生成中位数时,它会汇总所有中位数.
1 Median: 1 Total: 1
1 , 2 Median: (1+2)/2 = 1 Total: 1 + 1 = 2
1 , 2 , 3 Median: 2 Total: 2 + 2 = 4
1 , 1 , 2 , 3 Median: (1+2)/2 = 1 Total: 4 + 1 = 5
1 , 1 , 1 , 2 , 3 Median: 1 Total: 5 + 1 = 6
Run Code Online (Sandbox Code Playgroud)
我试图找到一种方法来进一步优化我的代码,因为它不够高效.(必须在2s左右处理)有没有人知道如何进一步加快我的代码逻辑?
我目前在C++中使用2个堆或优先级队列.一个用作最大堆,另一个用作最小堆.
从数据结构中找到了寻找中位数的想法
You can use 2 heaps, that we will …Run Code Online (Sandbox Code Playgroud)