复旦大学电子信息085400专业课,2020年961软件工程专业基础综合真题回忆
昨天刚考完,匆忙写下961回忆题,纯手打,如有回忆不全的地方,希望同道中人赐教。
————————————————————————————————————————————
数据结构(60分。试卷建议用java,但不强制要求)
1.统计一棵二叉树的有一个非空子树的节点的数量,写出算法并分析时间复杂度。(15分)
2.给出两种二叉搜索树,要求对增加、删除、查找操作的时间复杂度为O(log n),进行时间复杂度分析。(10分)
3.代码填空:
1).Floyd算法填空(15分)
代码记不得了,大概是给出一个二维数组实现的floyd算法,空出关键的两行,要求填写两行代码,分别是一个分支判断条件和一个赋值语句。
2).优化的快速排序(15分)
给出一个优化的快速排序,先用折半查找找出最小值, 再用插入排序排列大小,要求写三行代码,分别是三个赋值语句。
4.算法求N个不同的整数中最大的前K个数,要求时间复杂度为O(N),写出算法思想和实现,并进行时间复杂度分析。(20分)
这里应该是整份题的难点&#x