摘要: 时间复杂度为O(nlogn)的堆排序,是种不稳定的排序。原理为将数组想象为一棵二叉树,将子节点与父节点比较大小并交换。 举例:序列编号为 0 1 2 3 4 5 6 7 值为 4 5 1 6 2 7 3 8 编号化为树结构为: 0 1 2 3 4 5 6 7 7的父节点为3((7-1)/2),实际上 阅读全文
posted @ 2016-10-31 21:30 爱吃土豆的男孩 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 算法核心部分就是 n = n & (n - 1);着行代码可以吧n的最后一位1变成0,负数用补码表示同样可以。举个例子:二进制数n 为 1100,n-1 = 1011n&n-1 = 1000 n的第三位是1,运算后变成了0;如果n为负数同样,第一位为符号位,设n = 11000n = n&(n-1) 阅读全文
posted @ 2016-10-31 18:20 爱吃土豆的男孩 阅读(149) 评论(0) 推荐(0) 编辑
摘要: copy函数作用相当于上面的代码,刚开始用的时候并不能实现,上代码 根据函数模版发现,*result = *first; ++result; 原因是cv现在为一个空的容器,所以无法赋值,运行自然出现数组越界的问题。 定义的时候为cv分配空间即可 阅读全文
posted @ 2016-10-31 17:45 爱吃土豆的男孩 阅读(6661) 评论(0) 推荐(2) 编辑