- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT 32
数据结构算法实验报告(总汇)
实验报告1:
1.根据1.1.2的排列函数的规格说明,编写程序实现习题1.1和习题1.2所定义的函数。
习题1.1 定义下列函数检查一个序列是否有序:
bool sorted(int a[],int n);
解:#includestdio.h
//N代表可以改动数组的元素个数
#define N 5//函数功能:用于判断一个数组序列是否为一个非递减序列;
bool Sorted(int a[],int n)
{int i,Num=0;
for(i=0;in-1;i++)
{if(a[i]a[i+1])
{return false;
break;}
else
Num++;}
if(Num == n-1)
return true;}
int main()
{int a[N],i;
bool test;
printf(\n\t--程序用于判断输进来的程序是否为非递减排序--\n\n\n);
printf(输入%d元素:\n,N);
for(i=0;iN;i++)
scanf(%d,a[i]);
test = Sorted(a,N);
if(test == true)
printf(数组是非递减排序\n);
else
printf(数组不是非递减排序\n);
return 0;}
习题1.2 定义下列函数检查两个序列是否互为置换:
bool permutation(int a[],int b[], int n);
解://tranverse
//功能:用于判断两个数组:是否互为转置,如a[3]:1 2 3;b[3]:3 2 1--则数组a,b互为转置;
#includestdio.h
//在这里可以指定数组存储的元素的个数N
#define N 5
//函数功能:用于判断从控制台输入的两个数组是否互为转置;
bool tranverse(int a[],int b[],int n)
{int i,Num=0;
//算法的关键之处:同时遍历两个数组的元素,其中第一个数组元素为i时,例外一个 //数组元素的序号为n-i-1;
//当遍历过程一旦出现不相等的状况,程序返回false,并终止程序--表示这两个数组肯定 //不互为转置;
//否则,即相等--则继续进行比较,并记录相等的次数n,当循环结束时,比较n与数组 //的个数num,如果n=num;则表示
//两个数组互为转置,返回true;
for(i=0;in;i++)
{if(a[i]!=b[n-i-1])
{return false;
break;}
else
Num++;}
if(Num == n)
return true;}
int main()
{int i,a[N],b[N];
bool test;
printf(\n\t\t--程序用于判断两个数组是否互为转置--\n\n);
printf(数组a输入%d个元素:\n,N);
for(i=0;iN;i++)
scanf(%d,a[i]);
printf(数组b输入%d个元素:\n,N);
for(i=0;iN;i++)
scanf(%d,b[i]);
test = tranverse(a,b,N);
if(test == true)
printf(数组a与数组b互为转置\n);
else
printf(数组a与数组b不互为转置\n);
return 0;}
编写两个不同的排列程序,使用插入排序和冒泡排序两种算法分别实现之。
解:插入法
#includestdio.h
#includetime.h
#includestdlib.h
#define N 10
void insert_sort(int *array,unsigned int n)
{int i,j;
int temp;
for(i=0; iN; i++)
{temp = *(array + i);
for(j = i;j 0 *(array + j - 1) temp;j--)
{*(array + j) = *(array + j - 1);}
*(array + j) = temp;}
}
void main()
{int i,a[N];
printf(请输入%d个元素:\n,N);
for(i=0;iN;i++)
scanf(%d,a[i]);
insert_sort(a,N);
printf(输出这个%d元素
您可能关注的文档
- 数据结构第6章图技术总结.ppt
- 玩具产品案例题库.pptx
- 数据结构第10章技术总结.ppt
- 通信电源培训技术总结.ppt
- 数据结构第10章-排序技术总结.ppt
- 数据结构第二章作业及答案技术总结.ppt
- 数据结构第九章内部排序技术总结.ppt
- 数据结构第六章排序技术总结.ppt
- 通信电源知识技术总结.docx
- 通信电子电路第5章_反馈控制电路技术总结.ppt
- 2025贵州黔南州都匀市中小企业融资担保有限责任公司拟聘用人员考前自测高频考点模拟试题及完整答案详解.docx
- 2025贵州铁路投资集团有限责任公司招聘35人模拟试卷及参考答案详解1套.docx
- 2025贵州优建建筑劳务有限公司考前自测高频考点模拟试题及答案详解1套.docx
- 2025贵州银行金融科技相关岗位招聘10人考前自测高频考点模拟试题附答案详解.docx
- 2025第十三届贵州人才博览会沿河土家族自治县县管国有企业引才17人考前自测高频考点模拟试题及完整答.docx
- 2025赤峰环保投资有限公司招聘3人考前自测高频考点模拟试题及答案详解1套.docx
- 2025贵州安顺市社会科学界联合会招聘公益性岗位人员考前自测高频考点模拟试题及完整答案详解1套.docx
- 2025贵州金丽农业旅游产业发展集团有限公司招聘经理层高级管理人员(财务总监)1人考前自测高频考点模.docx
- 2025贵州黔东南州剑河县顺诚公司紧急招聘长期搔菌人员15人考前自测高频考点模拟试题及参考答案详解.docx
- 2025黑龙江东北林业大学土木与交通学院派遣人才招聘1人模拟试卷及参考答案详解.docx
文档评论(0)