
算法
梦想SEer
什么tm的叫tm的惊喜
展开
-
输入一个十进制的正整数,从低位开始查找,找到第一个置位(1)比特的位置
今天在网上看到一个题目,输入一个十进制的正整数,从低位开始查找,找到第一个置位(1)比特的位置 按照如下规则对正整数进行置位比特的查找: 1. 当查找失败时,比如输入正整数0,返回-1 2. 当查找成功时,返回该比特的位置 例子: 比如 如入12,二进制表示是0000000000001100,则第一个置位比特为2 那我的思路是先使二进制1左移i位与原数的二进制相与,第一个为真的时候返回i值即可原创 2017-05-16 16:43:49 · 1286 阅读 · 0 评论 -
循环不变式的理解
从算法导论里边,接触到循环不变式这个概念(Loop-invariant),算法导论给出证明过程如下: 初始化:循环的第一次迭代之前,它为真。 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。 终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。 首先理解一下为什么要用循环不变式去证明算法的正确性。假原创 2017-05-19 01:18:22 · 2263 阅读 · 1 评论