摘要:
快排我接触的也比较多了,从之前NOIP的时候算法老师讲的版本,到之前数据结构课上学习的版本,到现在《算法导论》里讲的版本,我个人并不能不能区别它们的好坏,权且都写出来,以后再来区别。三种实现方式如下:noip:void qsort1(int *a,int l,int r){ int i,j... 阅读全文
摘要:
也有好几天没记录算法学习情况了,这两天看了《算法导论》的第二部分,排序和顺序统计学,记录一下,也顺便增强记忆1.堆排序 就是最大堆和最小堆,用一维数组存储,数据结构是完全二叉树。主要过程分为构建最大/最小堆,插入操作,弹出最大值,取最大/最小值,改变堆中的权值。 构建堆就是从第一个非叶子节点... 阅读全文
摘要:
报了腾讯实习生招聘,今天晚上8点开始笔试 笔试内容目测是不难的,但我答的并不好,原因还是学习的时间太短,而且因为一直在看编译原理和算法,对于语言的学习基本没有,而此次笔试的不定项选择题中还是有不少的语言题的。 其中两道关于C++类的题目,基本就是子类继承父类,然后求输出,这种题目还是很普遍,... 阅读全文
摘要:
长度为n,分为n/k个小数组,每个长度为k问K取何值时能使效率最高易得O(n)=nk+nlg(n/k)nk是n/k个小数组进行插入排序k×k,得nknlg(n/k)是n/k个数组进行归并需要lg(n/k)次合并,每次代价为n的的答案应为lgnO(n)=nk+nlgn-nlgk若k>lgn,则前半部分... 阅读全文
摘要:
1.41)记号(token) 一个符号,一个字符或字符串或一个及多个数字都可以成为一个token。扫描程序把源代码读入并以token的形式记录下来,以便后面的程序进行工作2)语法树(syntax tree) 是一个以指针链接起来的树结构,每个节点都是一个记录类型,该记录类型存储语法分析程序及语义... 阅读全文
摘要:
1.扫描程序(scanner) 把源代码中的语句扫描进来,并分解成token。即词法分析。2.语法分析程序(parser) 进行语法分析,并将分析结果用分析树(parse tree)或者语法树(syntax tree)表示出来。3.语义分析程序(semantic analyzer) 在语法树下... 阅读全文