ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:28.33KB ,
资源ID:6413463      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6413463.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(级计算机学院课程设计题目及参考程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

级计算机学院课程设计题目及参考程序.docx

1、级计算机学院课程设计题目及参考程序问题 A: 整数排序一时间限制:20 Sec内存限制:128 MB题目描述经过三天的任务的训练,大家的确辛苦了因此,在任务开始时,我为大家准备了一道令人非常愉快的热身题即将一个杂乱无序的整数序列,按照从小到大的顺序排列并输出输入测试数据不止一组,每组测试数据:)先输入无序序列的整数个数n;(n不超过1000000))然后连续输入n个整数;若n的值输入为值,则输入结束输出与每组输入的测试数据相对应,输出其按从小到大排好序后的整数序列注意:每组输出占一行样例输入109 8 7 6 5 4 3 2 1 -1588 77 66 55 330样例输出-1 1 2 3 4

2、 5 6 7 8 933 55 66 77 88提示本题测试对第10章“内部排序”的理解程度。可采用冒泡排序、插入排序、选择排序、快速排序、希尔排序、堆排序等方法完成此题。警告:目的是让大家熟悉内部排序的各种算法,因此禁止调用sort或qsort等函数!不改正者降最终成绩等级简单排序版:#include#include#define SIZE 10000void fastsort(int a,int n) int i,j,k,temp; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(ajak) k=j; if(i!=k) temp=ai; ai=ak; a

3、k=temp; int main() int sortSIZE; int num,i; while(1) scanf(%d,&num); if(num=0) exit(0); for(i=0;inum;i+) scanf(%d,&sorti); fastsort(sort,num); for(i=0;inum;i+) if(i=num-1) printf(%d,sorti); else printf(%d ,sorti); printf(n); return 0;快速排序版:#include#define SIZE 100000void quick_sort(int a, int low, i

4、nt high) int i, j, t; if (low high) i = low; j = high; t = alow; while (ij) while ( it) j-; if (ij) ai = aj; i+; while (ij & ai=t) i+; if (ij) aj = ai; j-; ai = t; quick_sort(a,low,i-1); quick_sort(a,i+1,high); int main() int sortSIZE; int num,i; while(1) scanf(%d,&num); if(num=0) return 0; for(i=0;

5、inum;i+) scanf(%d,&sorti); quick_sort(sort,0,num-1); for(i=0;inum;i+) if(i=num-1) printf(%d,sorti); else printf(%d ,sorti); printf(n); return 0;堆排序版:#define MAX 10000#includevoid sift(int *x, int n, int s) int t, k, j; t = *(x+s); k = s; j = 2*k + 1; while (jn) if (jn-1 & *(x+j) *(x+j+1) j+; if (t=0

6、; i-) sift(x,n,i); for (k=n-1; k=1; k-) t = *(x+0); *(x+0) = *(x+k); *(x+k) = t; sift(x,k,0); int main() int *p, i, aMAX,num; while(1) p = a; scanf(%d,&num); if(num=0) return 0; for (i=0; inum; i+) scanf(%d,p+); p = a; heap_sort(p,num); for(i=0;inum;i+) if(i=num-1) printf(%d,ai); else printf(%d ,ai)

7、; printf(n); return 0;问题 B: 整数排序二时间限制:20 Sec内存限制:128 MB题目描述在完成了任务的第一个热身题后,很多同学觉得不过瘾,那就用同样的题目让大家再交一次原来已经的程序,看是什么样的结果,应该怎样应对?题目跟第一个热身题是一样的(但我已经大幅增加了测试数据),还是要求将一个杂乱无序的整数序列,按照从小到大的顺序排列并输出输入测试数据不止一组,每组测试数据:)先输入无序序列的整数个数n;(n不超过1000000))然后连续输入n个整数;若n的值输入为值,则输入结束输出与每组输入的测试数据相对应,输出其按从小到大排好序后的整数序列注意:每组输出占一行样例

8、输入109 8 7 6 5 4 3 2 1 -1588 77 66 55 330样例输出-1 1 2 3 4 5 6 7 8 933 55 66 77 88提示本题测试对第10章“内部排序”的理解程度。但要考虑算法的优化及排序方法的选择(排序速度要快才行)。警告:目的是让大家熟悉内部排序的各种算法,因此禁止调用sort或qsort等函数!不改正者降最终成绩等级#define MAX 1000000#includevoid sift(int *x, int n, int s)int t, k, j;t = *(x+s); k = s; j = 2*k + 1; while (jn)if(jn-1

9、 & *(x+j) *(x+j+1) j+;if (t=0; i-)sift(x,n,i);for (k=n-1; k=1; k-)t = *(x+0); *(x+0) = *(x+k);*(x+k) = t;sift(x,k,0); int main() int *p, i, aMAX,num;while(1)p = a;scanf(%d,&num);if(num=0) return 0;for (i=0; inum; i+)scanf(%d,p+);p = a;heap_sort(p,num);for(i=0;inum;i+)if(i=num-1)printf(%d,ai);elsepri

10、ntf(%d ,ai);printf(n);return 0;问题 C: 时间复杂度的估算时间限制:1 Sec内存限制:128 MB题目描述在数据结构里面,时间复杂度是决定算法效率的一项重要指标,常见的时间复杂度格式有三种:1、O(n)2、O(lg(n)3、O(sqrt(n)一个算法往往有多种解法,每种解法的复杂度由上述常见的的复杂度组合成,例如排序的两种算法:1、快速排序:时间复杂度为O(n*lg(n)2、冒泡排序:时间复杂度为O(n*n)现在先给定n的值,然后输入一个值m,随后输入m行数据表示有m个算法的复杂度。请确定这些复杂度是否会超时。若复杂度计算结果大于100000000,则为超时(

11、TLE),否则输出计算的复杂度,输出的结果保留两位小数。( lg(n)表示求以2为底数的n的对数)输入第一行输入n (1n10000000), m(1m100),其中n为表示问题规模的数,m为算法复杂度的个数。接下来m行,每行为一个串,每个串都包含O( ),其中,字符O后的括号里面的字符串保证仅由n,lg(n),sqrt(n),*组成并且合法。如sample input所示。注意:lg()或sqrt()中只会出现字符n,不会再嵌套lg()或sqrt()。如果想做得难一点,可以去做编号为1049的题,1049题要考虑嵌套。输出对于每个串,若计算出来的复杂度大于100000000,则输出TLE,否

12、则输出该复杂度的计算结果。样例输入10000 5O(n*n)O(n*n*n)O(sqrt(n)O(lg(n)O(n*lg(n)样例输出100000000.00TLE100.0013.29132877.12提示本题主要测试三个方面:1)对于时间复杂度的理解。2)字符串处理及数组的合理使用。3)编码能力。#include#include#define MAX 100int main()int N_NUM, L_NUM, S_NUM;int num;char stringMAX;double s;int i,p,n;while(scanf(%d %d,&n,&num)!=EOF)for(s=1.0,

13、N_NUM=0,L_NUM=0,S_NUM=0,p=0;pnum;p+) scanf(%s,string);s=1.0;N_NUM=0;L_NUM=0;S_NUM=0;for( i=2 ; stringi!=0; i+ )if(stringi=n)N_NUM+;i+;if(stringi=l)L_NUM+;i=i+5;if(stringi=s)S_NUM+;i=i+7;for(i=0;iN_NUM;i+)s=s*n; for(i=0;iL_NUM;i+)s=s*(log(n)/log(2.0);for(i=0;i100000000)printf(TLEn);elseprintf(%.2fn,s

14、);问题 D: 车站调度时间限制:1 Sec内存限制:128 MB题目描述有顺序排列的1,2, 3,n节车厢在入站口等待调度。车站设置了一个栈作为缓冲,这样的话只可能进行下列两个操作之一:(1)如果还有车厢在入站口,将最前面的入栈缓冲 (2)将栈顶的车厢驶出车站给定一个1至n的排列,问其作为出站序列是否合法。注意:入站顺序为1,2, 3,n,即1先入栈.,n最后入栈。输入输入包含若干测试用例。每一个测试用例由多行组成。第一行是两个整数n(1=n = 100)和m,n表示入站序列为1至n。m表示随后有m行出站序列。当n,m均为0时表示输入结束。输出对应每一个出站序列,合法则输出一行YES,否则输

15、出一行NO。样例输入3 61 2 31 3 22 1 32 3 13 1 23 2 10 0样例输出YESYESYESYESNOYES提示参见习题集p21 题3.1。本题主要测试对栈的理解及灵活运用。解本题推荐采用模拟入栈出栈的方式,以训练对栈的运用熟练程度。当然也有其它方法,如推导出规律(出栈序列中存在“大小中”的组合是不行的)后编程求解。#include#define MAX 100#define SIZE 100int clear(int a,int p)int i;for(i=0;ip-1;i+)if(aiai+1)return 0;return 1;int Judge(int a,i

16、nt num)int judgeSIZE;int p;int i,k,j;for(i=0;inum-2;i+)for(k=i+1,p=0;kak)judgep+=ak; if(clear(judge,p)continue;elseprintf(NOn);return -1;printf(YESn);return 0;int main()int num,time;int aMAX;int i,j;while(1)scanf(%d %d,&num,&time);if(num=0 & time=0) return 0;for(i=0;itime;i+)for(j=0;jnum;j+)scanf(%d

17、,&aj);Judge(a,num);return 0;问题 E: Acmers Love AC时间限制:1 Sec内存限制:128 MB题目描述We hate WA! We hate TLE! We hate RE! We hate PE.! The only thing we love is AC!Because we are ACMers! Now we give you a task that you should find how many stringsAcmersLoveAc are there in a string that we input.输入 The input con

18、tains several testcases. Each testcase consists of one string(only contains capital letter and Lowercase letter) which is at most 100 characters. Input is terminated by EOF.输出For each testcase output, print an integer which stands for that how many stringsAcmersLoveAc are there in the inputstring.样例

19、输入IKnowAcmersLoveAcAcmersDontLoveAcAcmersLoveAcAndAcmersLoveAc样例输出102提示本题是今天的热身题,主要测试对字符串的处理#include #include#define MAX 100#define SIZE 13int Equals(char a)char strSIZE=AcmersLoveAc;return strcmp(str,a);int NumofAC(char a,int num)int i,j,k=0,p;char bSIZE;for(i=0,j=0;i+SIZE-2num;i+)if(ai=A)p=i;for(j

20、=0;jSIZE-1;)bj+=ap+; bj=0;if(Equals(b)=0)k+;return k;int main()int num;char strMAX;while(scanf(%s,str)!=EOF)for(num=0;strnum!=0;num+);printf(%dn,NumofAC(str,num);return 0;问题 F: 二叉树遍历时间限制:1 Sec内存限制:128 MB题目描述对于二叉树T,可以有先序遍历、中序遍历和后序遍历三种遍历方式。我们知道,任意给定一颗二叉树的两种遍历方式,就可以唯一确定该树。现在我们要求给出一棵二叉树的先序遍历序列和中序遍历序列,输出

21、它的广度优先遍历序列。输入第一行为一个整数t(0t10),表示测试用例个数。以下t行,每行输入一个测试用例,包含两个字符序列s1和s2,其中s1为一棵二叉树的先序遍历序列,s2为中序遍历序列。s1和s2之间用一个空格分隔。序列只包含大写字母,并且每个字母最多只会出现一次。输出为每个测试用例单独一行输出广度优先遍历序列。样例输入2DBACEGF ABCDEFGBCAD CBAD样例输出DBEACGFBCAD提示本题主要测试对二叉树遍历的理解.#include #include#include#define SIZE 150#define MAX 150typedef struct BiTreechar data;struct BiTree *lchild,*rchild;BiTree;BiTree *CreateBT(char *pre,char *in,int n)BiTree *s;char *p;int k;if(ndata=*pre;for(p=in;plchild=CreateBT(pre+1,in,k);s-rchild=CreateBT(pre+k+1,p+1,n-k-1);return s;void BFS(BiTree *p)BiTree *queue

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1