gpt4 book ai didi

C++:这些按位 AND 和以下比较有什么作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:47 24 4
gpt4 key购买 nike

我目前正在完成使用两个堆查找中位数的实现: No. 30 - Median in Stream

我理解一般的基本算法,但我不确定这个具体的实现是如何工作的。具体来说,我对这两行的作用感到非常困惑:

if(((minHeap.size() + maxHeap.size()) & 1) == 0)
....
if(size & 1 == 1)

我相信我理解按位与 - 它接受两个数字并以二进制形式输出一个数字。通过比较 == 0 或 == 1,它会逐字检查按位 AND 分别是 0 还是 1。但是,在寻找中位数的情况下,这到底有什么作用呢?我知道保持堆“均匀”(并保持两个堆之间的中位数)很重要,但除此之外我不完全确定。这真的只是一种检查尺寸是否不同的方法吗?

最佳答案

我相信如果最低位为零,则第一个测试为真,即总和为偶数。如果 size 是奇数(即设置了 LSB),则第二个测试为真。

关于C++:这些按位 AND 和以下比较有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com