- 博客(6)
- 资源 (9)
- 收藏
- 关注
原创 STL经典算法集锦<五>之查找(lower_bound/upper_bound/binary_search)
这三个算法都比较的常用,而且具有一定的相似的性。理论依据也很明显,下面就直接贴出自己的实现版本。其中lower_bound与upper_bound实现了两个版本。版本一与STL的实现方法完全相同,以数据的总长度折半,版本二则是直接取前后的中点。当然本质上没有太大区别。lower_bound版本一:int lowerBound(int array[],int left,int right,i
2012-04-25 17:01:06 2431
原创 STL经典算法集锦<四>之rotate
STL在rotate上的优化是极尽其所能的。分别对前向访问,双向访问,随机访问的数据结构实现了三个版本的rotate。下面是自己按照对三种算法的理解,自己进行的实现。实现中我尽力避免使用C++的特性,从而以后可以在纯C的代码中使用。下面是我使用到的数据结构,单向链表与双向链表,用于实现算法和验证算法的正确性://单链表节点typedef struct Node* Link;stru
2012-04-25 16:47:08 2451
转载 数组循环移位问题
原文地址:http://blog.csdn.net/jcwkyl/article/details/3874629《编程之美》中的题目要求只使用两个附加变量。王晓东编著的《算法设计与实验题解》中要求只用到O(1)的辅助空间。其它地方两本书的要求相同,都是O(n)的时间复杂度。两本书中的解法总结起来就是三种方法:(1)循环换位算法(2)三次反转算法(3)排列循环算法。这三种算法在王晓东的著作中
2012-04-25 16:23:22 1482
原创 位运算能做什么
1、int变量的奇偶性(变量A) A&1 = 0 (偶数) A&1 = 1 (奇数)2、int变量第K位的操作。(变量A) (A>>K)&1 (比特位) A=A|(1置位) A=A&~(1清零)3、两整数的平均值(变量A、B) (A & B) +
2012-04-19 15:48:40 2572 1
原创 位运算实现加减乘除
#include #include //加法运算int add(int a, int b){ return b==0 ? a: add(a^b,(a&b)<<1);}//补码中正数转负数的原理int negative(int a){ return add(1,~a);}//减法运算int sub(int a,int b){ return add(a,negati
2012-04-19 00:06:24 2059
原创 补码——计算机中数的表示
(1)正数的补码 与原码相同。(2)负数的补码负数的补码是对其绝对值的原码逐位取反;然后整个数加1。(3)几个特殊数字的补码表示INT_MAX:0111 1111 1111 1111 1111 1111 1111 1111INT_MIN: 1000 0000 0000 0000 0000 0000 0000 0000(无对应的原码)-1: 1
2012-04-18 17:59:14 1151
一款简单的桌面便笺仅供学习交流
2010-10-07
LibGeoTiff(处理tiff文件的开源库)
2010-07-24
tiff3.8.2(Tiff图像处理库最新版)
2010-07-24
C++良好的编程风格
2010-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人