摘要:
当使用前缀和或者差分数组的时候,一般会遇到O(n2)的时间复杂度,此时我们可以使用树状数组来对时间复杂度进行优化。 树状数组主要是利用树形结构来优化我们前缀和或差分数组的计算复杂度使得O(n)的时间复杂度变为O(logn),使用总的时间复杂度减少到O(nlogn).。 构建树状数组的核心是lowbi 阅读全文
摘要:
(来自<<程序员的自我修养>>) 静态链接: 地址和空间分配 符号决议 重定向 阅读全文
摘要:
(来自<<程序员的自我修养>>) 编译过程可以分为六步: 扫描:源代码程序输入到扫描器, 语法分析:使用类似有限状态机的算法,将源代码的字符分割为一系列记号。大致可以:关键字、标识符、字面量(包含数字、字符串等)和特殊符号(加号、减号等)。 语义分析:编译器能分析的是静态语义即在编译器能够确定的语义 阅读全文
摘要:
gcc编译程序的时候可以分为四个部分: (来自于<<程序员的自我修养>>) 预处理(Prepressing) 编译(Compilation) 汇编(Assembly) 链接(Linking) 预编译阶段: gcc -E hello.c -o hello.i 主要工作为 展开所有的宏定义,删除#def 阅读全文