- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
线性表插入类排序算法
软件基础基础实验报告
系别:地质工程系 班级:09测绘 学号:0910205006 姓名:严康文 实验时间: 实验地点:网教中心
实验环境:Turbo c++3.0(vc6.0)
实验名称:线性表的插入类排序算法
实验目的:
掌握简单插入排序算法
掌握希尔排序算法★
实验内容:
对无序序列P(1:n)进行插入排序。
备注:需要用到的算法是:insort( )
对无序序列P(1:n)进行希尔排序。
备注:需要用到的算法是:shlsort( )
程序代码:(请写上详细的程序注释!注意这是重要的评分依据!)
#includestdio.h
#includestdlib.h
void input(int *v,int *n)
{
int i;
printf(请输入%d元素到线性表\n,*n);
for(i=0;i*n;i++)
{scanf(%d,v+i);printf(\n请输入下一个元素到线性表\n);}
printf(输入完成,停止输入\n);
}
void output(int *v,int *n)
{int i;
for(i=0;i*n;i++)
printf(线性表的第%d个元素为%d\n,i+1,*(v+i));
}
int *initsl(int m,int *n)
{
int *v;
v=(int *)malloc(m*sizeof(int));
return v;
}
void insl(int *v,int m,int *n,int i,int b)
{int j;
if(*n==m)
{printf(overflow\n);
return;
}
if(i*n-1) i=*n+1;
if(i1) i=1;
for(j=*n;j=i;j--) v[j]=v[j-1];
v[i-1]=b;
*n=*n+1;
return;
}
void desl(int *v,int m,int *n,int i)
{int j;
if(*n==0)
{printf(underflow\n);
return;
if((i1)||(i*n))
printf(not this element is in\n);
return;
}
for(j=i;j=*n-1;j++)
v[j-1]=v[j];
*n=*n-1;
return;
}
void menu()
{
printf(************请选择需要操作************\n);
printf(************进行插入请选择1************\n);
printf(************进行删除请选择2************\n);
printf(************查找请选择3************\n);
printf(************对分查找请选择4************\n);
printf(************冒泡排序请选择5************\n);
printf(************快速排序请选择6************\n);
printf(************插入排序请选择7************\n);
printf(************希尔排序请选择8************\n);
printf(************退出请选择9************\n);
return;
}
void bserch(int*v,int *n,int x)
{
int i,j,k;
i=1;j=*n;
while(i=j)
{
k=(i+j)/2;
if(v[k-1]==x) break;
if(v[k-1]x) j=k-1;
else i=k+1;
}
if(k!=-1) printf(被查找的元素序数是%d\n,k);else printf(not founded\n);
}
void serch(int*v,int *n,int x)
{
int k=0;
while((k*n)(v[k]!=x)) k=k+1;
if(k==*n) k=-1;
if(k!=-1) printf(被查找的元素序数是%d\n,k+1);else printf(not founded\n);
}
void insort(int *p,int *n)
{
int t;
int j,k;
for(j=1;j*n;j++)
{
t=p[j];k=j-1;
while((k=0)((p[k])t))
您可能关注的文档
- 外文数据库实验2.ppt
- 关于exists和in的终极比较.doc
- Alien的毛概实践调查报告.doc
- 工程业务联系4.doc
- 严蔚敏版数据结构复习题.doc
- 用对立统一观点看问题竞赛课课件.ppt
- 景观大道路面、照明分部分项.doc
- 高级语言C__程序设计考试大纲.doc
- 11套理论题有答案.doc
- 生态立县.doc
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)