实用算法复习
填空题(2’/空)
- 逻辑结构与计算机系统无关
- 链表是链式存储结构
- 插入排序是在未排序的序列中选择第一个元素插入有序队列
- 堆排序的大根堆是完全二叉树
- 计算递归代码输出结果(Fib数列n=5):5
- 检查括号匹配用到的数据结构是栈
- [0,m]循环队列的入队操作:rear=(rear+1)%(m+1)
- 红黑树插入节点后调整运用的是翻转和变色
- BM算法两个原则是坏字符和好后缀
- 双层for循环计算时间复杂度:O(n^2)或者O(n(n-1)/2)
- 检查最长重复字符串用到的数据结构是后缀数组
算法分析题
- 写出KMP利用nextval数组的字符串匹配过程(10’)
- 位图法检测n个无符号整型数据中某个数是否只出现一次(15’)
(1)位图法int数组的大小:数组int[a],a=Math.max(n)/32+1(5’)
(2)位图法检测某个数是否出现一次的具体实现方法:位图法的具体实现过程(略),可以利用count计数器,count==1表示只出现一次(10’) - AVL树建立过程,给了一个序列,自己建树(10’)
- trie树存储了哪些数据项(6’)
综合分析题(25’)
统计300万搜索单词中出现频度最高的10条数据,无内存限制,采用哈希表统计+排序
(1)哈希表中的key此处是什么?
(2)阐述算法设计思路,用伪代码或者流程图表示
(3)哈希完利用什么排序算法最高效?给出你的排序算法思路并分析时空复杂度
注:部分忘了,见谅。