【问题标题】:Log 2 N generic comparison treeLog 2 N 通用比较树
【发布时间】:2011-03-02 18:19:55
【问题描述】:

我正在研究冗余二进制表示 (RBR) 的算法,其中每两位代表一个数字。

我设计的比较器需要 4 位并输出 2 位。我想在 log 2 n 中进行比较,所以如果我有 X 和 Y .. 我将 X 的每 2 位与 Y 的每 2 位进行比较。如果 X 或 Y 的位数等于 n,这很平滑,其中 (n = 2^X) 即 n = 2,4,8,16,32,... 等等。像这样:

alt text http://www.freeimagehosting.net/uploads/th.a57569d23f.png

但是,如果我的输入让我们说是 6 或 10 .. 那么它会变得不流畅,我必须考虑一些奇怪的情况,例如:

alt text http://www.freeimagehosting.net/uploads/th.28bd84300d.png

我在算法方面的经验很浅.. 有没有通用的方法.. 所以不管输入是什么,最后我只得到 2 位?

我只需要提示或伪代码。如果我的问题在这里不合适..请随时标记它或告诉我删除它。

顺便说一句,我正在使用 VHDL!

【问题讨论】:

    标签: algorithm comparison binary-tree


    【解决方案1】:

    0's 填充您的输入位字符串,直到它的长度合适,也许吧?在比较器中隐式执行此操作是最简单的:如果作为参数提供给比较器的位数小于 4,只需将您拥有的位左移,直到输入字的大小正确。

    【讨论】:

      【解决方案2】:

      每次比较都会将您的总位数减少 2,因此除非出于其他原因顺序很重要,否则无论您如何安排比较,您都将进行相同数量的比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-15
        • 1970-01-01
        • 2023-03-20
        • 2013-06-12
        • 2012-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多