算法精进
每天提高一点儿
这个作者很懒,什么都没留下…
展开
-
位运算
位运算能够有时能极大地提高计算效率。1、n>>1相当于除以2,n<<1相当于乘以2;2、利用n & (n - 1)消去 n 最后的一位 1n = n & (n - 1)可以把 n 最右边的 1 消除掉,用途如下:(1)、判断一个正整数 n 是否为 2 的幂次方如果一个数是 2 的幂次方,意味着 n 的二进制表示中,只有一个位 是1,其他都是0,可以对 n 执行n = n & (n - 1),执行之后结果如果不为 0,则代表 n 不是 2 .原创 2020-06-08 00:05:46 · 166 阅读 · 0 评论 -
算法总结:二分查找
二分查找描述了在有序集合中搜索特定值的过程,每次比较之后将查找空间一分为二,时间复杂度是 O(logn),空间复杂度是 O(1)。数据必须具备有序和支持随机访问两个条件,数组可以,链表不行常用术语:目标 Target —— 要查找的值 索引 Index —— 要查找的当前位置 左、右指示符 Left,Right —— 维持查找空间的指标 中间指示符 Mid —— 应用条件来判断应该向左查找还是向右查找的索引3个部分: 预处理—— 如果集合未排序,则进行排序。 二分查找..原创 2020-05-29 23:48:37 · 118 阅读 · 0 评论