算法
漂泊尘埃0x101010
这个作者很懒,什么都没留下…
展开
-
找出大于等于v的最小的2的倍数
大于等于8的最小的2的倍数是8大于等于9的最小的2的倍数是16 v-- v |= v >> 1 v |= v >> 2 v |= v >> 4 v |= v >> 8 v |= v >> 16 v++如果v的二进制是:0000 1000,那么就找最前面的1的位置,其余置0就行如果v的二进制是原创 2015-03-26 10:03:37 · 1091 阅读 · 0 评论 -
找出数组中两个只出现一次的数字
参考博文:http://blog.csdn.net/wdkirchhoff/article/details/44466659问题描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。分析数组示例:{1, 1, 2, 2, 3, 3, 4, 4, 5, 6}首先希望先把出现两次的数字去掉,这需要用到异或运算的一原创 2015-03-26 09:56:43 · 619 阅读 · 0 评论 -
划分一个整形数组,把负数放在左边,零放在中间,正数放在右边
原理和快速排序类似,只是不需要确定每个元素的顺序,只需要确定每个区域的位置。func main() { // 问题描述:划分一个整形数组,把负数放在左边,零放在中间,正数放在右边 arr := []int{0, 2, 4, 3, 1, 0, -3, -1, -2} fmt.Printf("原数组: %v \n", arr) low := 0 //原创 2015-06-15 10:25:46 · 3116 阅读 · 0 评论 -
《算法导论》第18章 B树
1. B树的定义B树示意图:// 保存在B树中的关键字,同时也可以保存其他数据type Key interface { CompareTo(other Key) int String() string}type BTree struct { root *BTreeNode t int // 最小度数,除根节点外的内部节点至少有t个孩子,至多2t个孩子}ty原创 2015-09-02 13:51:20 · 646 阅读 · 0 评论