算法与数据结构.docx
- 文档编号:12833176
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:23
- 大小:576.61KB
算法与数据结构.docx
《算法与数据结构.docx》由会员分享,可在线阅读,更多相关《算法与数据结构.docx(23页珍藏版)》请在冰豆网上搜索。
算法与数据结构
数据结构与算法课程设计
题目求素数问题、数据删除问题、
方程求解问题、排序重构问题
目录
摘要3
一.求素数问题4
1.采用类语言定义相关的数据类型4
2.算法设计4
3.函数的调用关系图4
4.调试分析4
5.测试结果5
6.源程序(带注释)5
二.数据删除问题6
1.采用类语言定义相关的数据类型6
2.算法设计6
3.函数的调用关系图6
4.调试分析6
5.测试结果6
6.源程序(带注释)6
三.方程求解问题7
1.采用类语言定义相关的数据类型7
2.算法设计7
3.函数的调用关系图7
4.调试分析7
5.测试结果7
6.源程序(带注释)7
四.排序重构问题7
1.采用类语言定义相关的数据类型7
2.算法设计7
3.函数的调用关系图7
4.调试分析7
5.测试结果7
6.源程序(带注释)7
总结8
参考文献9
致谢10
摘要
求素数问题:
素数问题的求解是一种利用埃拉托色尼筛法来查找小于N的素数的求解方法,它能够实现对数据N的输入,判断N是否越界,查找小于N的素数,判断是否继续输入N等操作。
数据删除问题:
删除具有N个数据项的数组A中所有重复项的程序,返回A中仍有的数据项。
运行时间在O(NlogN)
方程求解问题:
方程A5+B5+C5+D5+E5=F5刚好有一个满足0≤A≤B≤C≤D≤E≤F≤
75的整数解。
排序重构问题:
令A为一个由N个已特殊排序数组成的数列:
A1,A2,…,AN,其中A1=0。
令B为N(N-1)/2个数(定义为Dij=Ai-Aj(i>j))组成的数列。
例如,A=0,1,5,8,那么D=1,3,4,5,7,8。
关键词:
素数埃拉托色尼筛法删除元素
方程求解递归算法排序与重构
一.求素数问题
它素数问题的求解是一种利用埃拉托色尼筛法来查找小于N的素数的求解方法,能够实现对数据N的输入,判断N是否越界,查找小于N的素数,判断是否继续输入N等操作。
1.采用类语言定义相关的数据类型
构建线性表
typedefstruct
{
intdata[MaxSize];
intlength;
}SeqList;
SeqListL,Q;
判断素数
SeqListJudgePrimeNumber(SeqListL,SeqListQ,intm)
{
inti,j,l=0,a=0,b=0;
doublen;
2.算法设计
冒泡排序
voidbubble_sort(inta[],intn)//n为数组a的元素个数
{
inti,j,temp;
for(j=0;j for(i=0;i { if(a[i]>a[i+1])//数组元素大小按升序排列 { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } } 3.函数的调用关系图 判断2~N之间的整数是否是素数,算法的时间复杂度为O(n^2) 4.调试分析 a、输入的数据错误。 解决办法: 对输入的数据进行筛选和检验 b、算法的时间复杂度为o(n2) c、算法的空间复杂度为o(n2) 5.测试结果 6.源程序(带注释) #include #defineTRUE1 #defineFALSE0 #defineSIZE200 main() { intl;/*用于遍历数*/ inti;/*i表示整数和对应的下标*/ intj;/*j表示正要处理的质数j之前的已处理j之后的未处理*/ intk;/*k表示正在处理的j的倍数从2开始到j*k inta[SIZE];/*下标表示整数内容判断是否为质数*/ int*p;/*控制循环*/ for(l=2;l<=200;l++){ printf("%d",l); } printf("\n200以内的素数有: "); for(p=a;p *p=TRUE; } a[0]=a[1]=FALSE;/*设置前面两个不是质数的数的状态为FALSE*/ i=2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 数据结构