1、设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。2、有一种简单的排序算法,叫做计数排序(countsorting)。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。
必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
1)(3分)给出适用于计数排序的数据表定义;
2)(7分)使用pascal或c语言编写实现计数排序的算法;(3)(4分)对于有n个记录的表,关键码比较次数是多少?
4)(3分)与简单选择排序相比较,这种方法是否更好?为什么?3、有一种简单的排序算法,叫做计数排序(countsorting)。
这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
1)(3分)给出适用于计数排序的数据表定义;
2)(7分)使用pascal或c语言编写实现计数排序的算法;(3)(4分)对于有n个记录的表,关键码比较次数是多少?
4)(3分)与简单选择排序相比较,这种方法是否更好?为什么?4、后序遍历最后访问根结点,即在递归算法中,根是压在栈底的。
采用后序非递归算法,栈中存放二叉树结点的指针,当访问到某结点时,栈中所有元素均为该结点的祖先。本题要找p和q的最近共同祖先结点r,不失一般性,设p在q的左边。后序遍历必然先遍历到结点p,栈中元素均为p的祖先。
将栈拷入另一辅助栈中。再继续遍历到结点q时,将栈中元素从栈顶开始逐个到辅助栈中去匹配,第一个匹配(即相等)的元素就是结点p和q的最近公共祖先。
typedefstruct
bitreet;inttag;//tag=0表示结点的左子女已被访问,tag=1表示结点的右子女已被访问}stack;
stacks,s1;栈,容量够大。
bitreeancestor(bitreeroot,p,q,r)//求二叉树上结点p和q的最近的共同祖先结点r。//沿左分枝向下。
if(bt==p)//不失一般性,假定p在q的左侧,遇结点p时,栈中元素均为p的祖先结点//将栈s的元素转入辅助栈s1保存if(bt==q)//找到q结点。
for(i=top;i>0;i--)将栈中元素的树结点到s1去匹配}
while(top!=0&&s[top].tag==1)top--;退栈。
if(top!=0){s[top].tag=1;bt=s[top].
t->rchild;}/沿右分枝向下遍历}//结束while(bt!=null||top>0)return(null);/p无公共祖先}//结束ancestor
5、设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。6、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否相似,采用递归算法。
intsimilar(bitreep,q)//判断二叉树p和q是否相似。
if(p==null&&q==null)return(1);elseif(!p&&q||p&&!q)return(0);
elsereturn(similar(p->lchild,q->lchild)&&similar(p->rchild,q->rchild))
//结束similar
7、设t是一棵满二叉树,编写一个将t的先序遍历序列转换为后序遍历序列的递归算法。
2023年广东省数据分析深入
1 设一组有序的记录关键字序列为 13,18,24,35,47,50,62,83,90 查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。2 有一种简单的排序算法,叫做计数排序 count sorting 这种排序算法对一个待排序的表 用数组表示 进行排序,并...
2023年广东省数据总结深入
1 设一组有序的记录关键字序列为 13,18,24,35,47,50,62,83,90 查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。2 二部图 bipartite graph g v,e 是一个能将其结点集v分为两不相交子集v 1和v2 v v1的无向图...
2023年湖南省数据分析深入
1 设一组有序的记录关键字序列为 13,18,24,35,47,50,62,83,90 查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。2 我们用l代表最长平台的长度,用k指示最长平台在数组b中的起始位置 下标 用j记住局部平台的起始位置,用i指示扫描b数组...