摘要:
第一章 1.2 按位运算符:& 逻辑运算符:&& 1.3 单字符符号:只有一个字符长 多字符符号:含多个字符 贪心法,大嘴法:一个字符一个字符读入,如果该字符可能组成一个符号,那么再读下一个字符,判断已经读入的两个字符组成的字符串能否组成一个(多字符)符号的一部分,如果可以,继续读下一个字符,重复上 阅读全文
摘要:
来源于《数据结构与算法分析:C语言描述》 def1:如果存在正常数c和n0,使得当N>=n0时,T(N)<=cf(N),则记为T(N) = O(f(N)); T(N)的增长率小于等于f(N)的增长率 def2:如果存在正常数c和n0,使得当N>=n0时,T(N)>=cg(N),则记为T(N) = Ω 阅读全文
摘要:
8月28日看了MIT算法的归并排序 对“并”进行代码优化 优化归并排序: 一、考虑为何归并排序不适合特别小的数组? 因为申请额外空间,还会增加调用函数开销。而和插入排序比较而言,由于数组规模特别小,时间上并无太大差别。 因此改进方法就是进行切分。对于小于某个数组规模的数组进行插入排序。见代码 二、假 阅读全文
摘要:
挖坑填数法+分治法(从别人的博客借鉴得到) 复杂度:O(nlogn)。 T(n) = 2T(n/2) + θ(n) (递归加一次遍历) 有主定理(见另外一篇随笔)得:O(nlogn)。 稳定性:不稳定,原因如下: 举个例子:待排序数组:int a[] ={1, 2, 2, 3, 4, 5, 6}; 阅读全文
摘要:
一张图表示非递归遍历的实质: 我们如何找到左子树,因为我们先访问根节点,所以根据根节点中保存的左子树的地址,可以向左下访问。 那左子树访问完了,如何回来访问右子树呢? 这就是栈的作用!!!! 栈顶保存着上一次最后遇到的根节点,把栈顶元素弹出,则可以“往回走”,借此可以访问右子树。 阅读全文