预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

算法分析与设计实验报告14算法分析与设计实验报告学院:信息科学与工程学院专业班级:物联网工程1301班指导老师:向瑶学号:姓名:目录实验一----------------------------------------3实验目的-----------------------------------------3实验内容-----------------------------------------3实验原理及部分代码---------------------------------3实验结果------------------------------------------4源代码-------------------------------------------4实验二----------------------------------------7实验目的-----------------------------------------7实验内容-----------------------------------------7实验原理及部分代码---------------------------------7实验结果------------------------------------------8源代码-------------------------------------------8实验三----------------------------------------10实验目的-----------------------------------------10实验内容-----------------------------------------10实验原理及部分代码---------------------------------10实验结果------------------------------------------11源代码-------------------------------------------11心得体会-----------------------------------------14实验一递归与分治实验目的1、理解递归算法的思想和递归程序的执行过程并能熟练编写递归程序。2、掌握分治算法的思想对给定的问题能设计出分治算法予以解决。实验内容设计算法并编程实现快速排序实验原理及部分代码建立顺序表存储数据(顺序表的第一存储单元不放数据存储数据个数)设置high与low指向表的两端表的第一个数充当关键字依次从表的右端左端与highlow进行比较是的比关键字大的在关键字的左边比关键字小的在表的有右边。以关键字为枢轴位置分为高低子表进行递归排序。实验结果源代码#include"stdio.h"#include"stdlib.h"#defineOVERFLOW-2typedefstruct{int*elem;intlength;}SqList;SqListcreate(intn)//建立一个顺序表{SqListL;L.elem=(int*)malloc(n*sizeof(int));if(!L.elem)exit(OVERFLOW);L.length=n;for(intj=1;j<n;j++){printf("请输入第%d个整数:\n"j);scanf("%d"&L.elem[j]);}printf("输入的数据如下:\n"j);for(intk=1;k<n;k++)printf("%6d"L.elem[k]);printf("\n");returnL;}intPartition(SqList&Lintlowinthigh){//交换顺序表L中子序列L.elem[low..high]的记录使枢轴记录到位//并返回其所在位置此时在它之前(后)的记录均不大(小)于它intpivotkey;L.elem[0]=L.elem[low];//用子表的第一个记录作枢轴记录pivotkey=L.elem[low];//枢轴记录关键字while(low<high){