- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 排序和查找 3. 【03级试题】设有一个头结点H,H的指针域指向一个双向链表(非循环)的首结点。用C或类C编写一个将此双向链表逆序的算法(请定义H的数据类型)。 4. 关于时间效率和空间效率的问题 【04级试题】算法A的时间复杂度为O(1),算法B的时间复杂度是O(log2n),算法A的运算时间一定比算法B少吗?为什么? 6. 【01级试题】假设有二维数组A7×9,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,末尾元素A[6][8]的第一个字节地址为多少?若按列存储时,元素A[4][7]的第一个字节地址为多少? 7. 【03级试题】在KMP算法中,已知模式串为LIUYULIUWENYU ,请写出模式串的next[j]函数值,并分析next[j]函数值的大小与KMP算法的比较次数多少(或时间)有何关系,简单解释你的理由。 二、非线性结构(包括:二叉树、树、图) 5. 【03级试题】已知一棵二叉树的前序序列和中序序列分别为: ABDGCEFH和DGBAECHF,则该二叉树的后序序列是什么? 7. 【01级试题】定义二叉树的宽度为二叉树一层中结点个数的最大值,试编写一算法求二叉树的宽度。(9分) 13. 【03级试题】假设字符a,b,c,d,e,f的使用频度分别是0.07, 0.09, 0.16, 0.18, 0.23, 0.27,写出a,b,c,d,e,f的Huffman编码并计算其平均码长WPL。 如果对于一个编解码系统,双方各建一棵Huffman树,设建树步骤都是首先将各个字符的权重进行排序,再取最小的两个权值进行合并,请问是否需要考虑这个排序算法的稳定性,你选择什么排序方法,为什么? (12分) 15. 【03级试题】哈夫曼树是带权路径长度之和最小的树,但现在要求带权路径长度之和最大的树,你认为应该怎样求?请写出设计思路。假设字符a,b,c,d,e,f的使用频度分别是0.07, 0.09, 0.16, 0.18, 0.23, 0.27,请画出对应的WPL最大的树并计算WPL的值。 2. 【02级试题】下图为某无向图的邻接表,按教材算法7.5和7.6分别写出深度优先搜索和广度优先搜索的结果,并画出逻辑结构图。 三、查找和排序 2. 【01级试题】已知一组关键字为(10,24,32,17,31,30,46,47,40,63,49),设哈希函数H(key)=key MOD 7。 请解答:(1)???? 写出用链地址法处理冲突构造所得的哈希表;(2)???? 若查找关键字17,需要依次与哪些关键字进行比较?(3)???? 若查找关键字60,需要依次与哪些关键字比较?(4)???? 假定每个关键字的查找概率相等,求查找成功时的平均 查找长度。 (7分) 4. 【04级试题】 n个整数的序列,求前3个最大值,最少需要多少次比较,为什么?(8分) 6. 【01级试题】欲将无序序列(23, 78, 12, 35, 69, 95, 11, 09, 35*, 48, 99, 26)中的关键码按升序重新排列,请写出快速排序第一趟排序的结果序列。另外请画出堆排序(小根堆)的初始堆。 8. 【02级试题】试编写一个算法,判断一给定的整型数组a[n]是不是一个堆。 9. 【04级试题】快速排序在什么情况下最快?什么样情况下最慢?在最慢的情况下请提出一种提高效率的解决办法。 11【04级试题】:一个整数数组,长度为n,编写一个最优算法实现数组的奇数排在前,偶数排在后。并分析该算法的平均时间和空间复杂度。 (10分) 提示:堆的特点是: ki=k2ik2i+1 或 ki=k2ik2i+1 ?算法如下: void SortA(sqlist A, int n) { if(n==0) return(0); //空表 if (a[1]a[2]) //由头两个元素判断是大根堆或小根堆 { for( i=1; i=n/2; i++) if (a[i]a[2*i]|| a[i]a[2*i+1])return(-1); return(minleap) }; else { for( i=1; i=n/2; i++) if (a[i]a[2*i]|| a[i]a[2*i+1])return(-1); return(“maxleap”) }; } 答:快速排序在无序状态下最快,在基本有序(或逆序)下最慢。 提高效率的解决办法为,选中间位置的元素amid为
文档评论(0)