下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五第10章直接插入排序和希尔排序一、直接插入排序【源程序】#include#include#include#define LENGTH 10#define MAXSIZE 10typedef int KeyType;typedef struct(KeyType key;RedType;typedef struct(RedType rMAXSIZE+1;int length;SqList;void Init_L(SqList &L)洌始化静态表int i;L.length=LENGTH;printf(请输入 %d 个数据元素!n,L.length);for(i=1;i=L.length;i+
2、)scanf(%d”,&L.ri);void Display(SqList L)显示静态表内容printf(表中内容为:”);int i;for(i=1;i=L.length;i+)printf(%d ,L.ri);printf(n);void InsertSort(SqList &L)对顺序表L作直接插入排序int i,j;for(i=2;i=L.length;+i)if(L.ri.keyvL.ri-1.key)/”v”,需将 L.ri插入有序子表L.r0=L.ri;/复制为哨兵L.ri=L.ri-1;for(j=i-2;(L.r0.keyL.rj.key);-j)L.rj+1=L.rj;/
3、记录后移L.rj+1=L.r0;/插 入到正确位置 printf(第 %d 次排序时”,i-1);Display(L);/InsertSort*欢迎使用直接插入排序程序:*n);静态表的初始化*n); 直接插入排序*n); 退出操作 *n);void main() int j,t; SqList L; t=1; printf( printf(* printf(* printf(* while(t)printf(n请选择需要使用的功能:”); scanf(%d”,&j);switch(j) case 1:Init_L(L);Display(L);break;case 2:printf(-直接排序
4、过程如下n);InsertSort(L);break;case 3:t=0;Display(L);printf(退出操作,谢谢使用! n);break;default:printf(输入错误!请重新输入!谢谢!n);break;【程序运行截图】e -C:DOCUIENTS AMD SETTINGSALL USERS 桌面、第 10章直接插入排序Debug 第 10一 ;舞舞舞舞舞舞舞舞舞 舞舞舞舞舞舞舞舞舞 舞舞舞舞舞舞舞舞舞5 18 56情选择需要使用的功能H 隋输入10个数据元素, 12 10 7 8 14 5 18 56 79 23 宸中内容为:12 10 7 8/p>
5、721017658154182101 ?7658154121018 ?7658154121018 776581412101875765814121018757658141210187532 7958141211087553281412110875切“.切“.切“.切“.切“.切“ -容容容容容容容容容 一 内内内内内内内内内 ,口口口口口口口口口 的表表表表表表表表表 町时.町 - - - - - - - - - - - - - - - - - _T=TI司rfKLr.,r.,r.,r.,r.,r.,r.,r.,r., 择排胃!-上* 先一揍 12345678918 23 56 79gl雷慎碧
6、择需要使用的功能:3 莒考操作,谢谢使用!Press any key to continue14容为:5 7 8 10 12二、希尔排序【源程序】#include#include#include#define LENGTH 10#define MAXSIZE 10#define T 3typedef int KeyType;typedef struct(KeyType key;RedType;typedef struct(RedType rMAXSIZE+1;int length;SqList;void Init_L(SqList &L)洌始化静态表int i;L.length=LENGTH;
7、printf(请输入 %d 个数据元素!n,L.length);for(i=1;i=L.length;i+)scanf(%d”,&L.ri);void Display(SqList L)显示静态表内容printf(表中内容为:”);int i;for(i=1;i=L.length;i+)printf(%d ,L.ri);printf(n);void ShellInsert(SqList &L,int dk)对顺序表L作一趟希尔插入排序int i,j;for(i=dk+1;i=L.length;+i)if(L.ri.key0&(L.r0.keyL.rj.key);j-=dk)L.rj+dk=L.
8、rj;/记录后移,查找插入位置L.rj+dk=L.r0;/插 入/ShellInsertvoid ShellSort(SqList &L,int dlta,int t)按顺序增量序列dlta0.t-1对顺序表L作希尔排序int k;for(k=0;kt;+k)printf(第 %d趟希尔排序结果:”,k+1);ShellInsert(L,dltak);/一 趟增量为 dltak的插入排序 Display(L);/ShellSort void main()int j,t;int dtT=5,3,1;SqList L;t=1;printf( *欢迎使用希尔排序程序:*、/);printf(* 1.
9、静态表的初始化 *n);printf(* 2.希尔排序*n);printf(* 3.退出操作*n);while(t)(printf(n请选择需要使用的功能:”);scanf(%d”,&j);switch(j)(case 1:Init_L(L);Display(L);break;case 2:printf(希尔排序过程如下n);ShellSort(L,dt,T);break;case 3:t=0;printf(退出操作,谢谢使用! n);break;default:printf(输入错误!请重新输入!谢谢!n);break;【程序运行截图】*心心心心心心欢迎使营予尔m情选择需要使用的功能:1情输入10个数据元素,49 38 65 97 76 13 27 49 55 04 候中内容为:49 38 65 97 76 13 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果园管理考核试题及标准答案
- 文本摘要Python实践课程设计
- 模拟退火车间调度课程设计案例课程设计
- 超大风量除尘课程设计
- 参考文献 c 课程设计
- WebGL粒子特效系统项目实战课程设计
- 同态加密隐私保护应用课程设计
- 深度强化学习游戏AI(如Atari)技术前沿课程设计
- 无人机自主降落工程方案课程设计
- 图像灰度化与边缘检测程序图像分析课程设计
- 2024-2025学年广东广州番禺区七年级(下)期末数学试卷及答案
- 2026福建海峡科化股份有限公司社会招聘15人笔试备考题库及答案详解
- 2026北京语言大学新编长聘人员招聘9人(第三批)考试备考题库及答案详解
- 2026秋北京版小学数学二年级上册教学计划
- 消化内镜操作规范
- 护理沟通与人文关怀技巧
- 软包墙面施工方案及技术措施
- 2026年秋季学期 1530安全教育记录
- 病历书写基本规范(国家卫健委2022年版)
- 核心素养导向下大单元教学-成都中考B卷填空题23与几何压轴26最值系列专题复习教案
- DB54T 0616-2026《民用供氧工程施工及验收规范+》
评论
0/150
提交评论