企业效率管理数据结构实验排序算法效率比较平台

上传人:冯** 文档编号:139305740 上传时间:2020-07-21 格式:DOCX 页数:20 大小:55.60KB
返回 下载 相关 举报
企业效率管理数据结构实验排序算法效率比较平台_第1页
第1页 / 共20页
企业效率管理数据结构实验排序算法效率比较平台_第2页
第2页 / 共20页
企业效率管理数据结构实验排序算法效率比较平台_第3页
第3页 / 共20页
企业效率管理数据结构实验排序算法效率比较平台_第4页
第4页 / 共20页
企业效率管理数据结构实验排序算法效率比较平台_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《企业效率管理数据结构实验排序算法效率比较平台》由会员分享,可在线阅读,更多相关《企业效率管理数据结构实验排序算法效率比较平台(20页珍藏版)》请在金锄头文库上搜索。

1、 数据结构课程实验实 验 报 告题目: 内部排序算法效率比较平台的设计与实现 专业: 计算机科学与技术 班级: 姓名: 学号: 完成日期: 一、试验内容各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。设计和实现内部排序算法效率比较平台,通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观的感受。二、试验目的掌握多种排序方法的基本思想,如直接插入、冒泡、简单选择、快速、堆、希尔排序等排序方法,并能够用高级语言实现。三、源程序代码#include#include#include#define le 100struct pointchar key11;/

2、冒泡法void maopao(point c)point a,ble;int i,j,jh=0,bj=0,q;for(i=0;ile;i+)bi=ci;for(i=0;ii;j-)bj=bj+1;q=strcmp(bi.key,bj.key);if(q=1)a=bi;bi=bj;bj=a;jh=jh+3;cout冒泡法:endl完成的序列如下:endl;for(i=0;ile;i+)coutbi.key ;coutendl共进行比较bj次,进行交换jh次endl*endl;/直接插入排序void zhijiecharu(point c)point ble+1;int i,j,jh=0,bj=0

3、,q;for(i=0;ile;i+)bi+1=ci;for(i=2;i=le+1;i+)q=strcmp(bi.key,bi-1.key);bj=bj+1;if(q=-1)b0=bi;bi=bi-1;jh=jh+2;q=strcmp(b0.key,bi-2.key);bj=bj+1;for(j=i-2;q=-1;j-)bj+1=bj;jh=jh+1;q=strcmp(b0.key,bj-1.key);bj=bj+1;bj+1=b0;jh=jh+1;cout直接插入排序:endl完成的序列如下:endl;for(i=1;ile+1;i+)coutbi.key ;coutendl共进行比较bj次,

4、进行交换jh次endl*endl;/void shellinsert(point c,int dk,int d)int j,i,q;point a;for(i=dk+1;i0&q=-1;j=j-dk)cj+dk=cj;d1=d1+1;q=strcmp(a.key,cj-dk.key);cj+dk=a;d1=d1+1;void shellsort(point c,int dlta,int t)int k,d2,i;d0=0;d1=0;point ble+1;for(k=0;kle;k+)bk+1=ck;for(k=0;kt;k+)shellinsert(b,dltak,d);cout希尔排序:e

5、ndl完成的序列如下:endl;for(i=1;ile+1;i+)coutbi.key ;coutendl共进行比较d0次,进行交换d1次endl*endl;/希尔排序void xier(point c)int dlta20,t,i;t=le/2;for(i=0;i20;i+)dltai=t+1;if(t=0)break;t=t/2;t=i+1;shellsort(c,dlta,t);/简单选择排序void jiandanxuanze(point c)point a,ble;int i,j,jh=0,bj=0,q,w;for(i=0;ile;i+)bi=ci;for(i=0;ile-1;i+)

6、q=i;for(j=i+1;jle;j+)bj=bj+1;w=strcmp(bq.key,bj.key);if(w=1)q=j;if(q=i)continue;else a=bi;bi=bq;bq=a;jh=jh+3;cout简单选择排序排序:endl完成的序列如下:endl;for(i=0;ile;i+)coutbi.key ;coutendl共进行比较bj次,进行交换jh次endl*endl;int partition(point c,int low,int high,int d)point a,b;int jh=0,bj=0,q;a=clow;while(lowhigh)q=strcmp

7、(chigh.key,a.key);d0=d0+1;while(lowhigh&q!=-1)high-;q=strcmp(chigh.key,a.key);d0=d0+1;b=clow;clow=chigh;chigh=b;d1=d1+3;q=strcmp(clow.key,a.key);d0=d0+1;while(lowhigh&q!=1)low+;q=strcmp(clow.key,a.key);d0=d0+1;b=clow;clow=chigh;chigh=b;d1=d1+3;return(low);void qsort(point c,int low,int high,int d)in

8、t pivotloc;if(lowhigh)pivotloc=partition(c,low,high,d);qsort(c,low,pivotloc-1,d);qsort(c,pivotloc+1,high,d);/快速排序void kuaisu(point c)point ble;int i,d2;d0=0;d1=0;for(i=0;ile;i+)bi=ci;qsort(b,0,le-1,d);cout快速排序:endl完成的序列如下:endl;for(i=0;ile;i+)coutbi.key ;coutendl共进行比较d1次,进行交换d0次endl*=0;i-)q=strcmp(bi

9、.key,b2*i.key);*bj=*bj+1;if(q=-1)a=bi;bi=b2*i;b2*i=a;*jh=*jh+3;if(2*i+1we)q=strcmp(bi.key,b2*i+1.key);*bj=*bj+1;if(q=-1)a=bi;bi=b2*i+1;b2*i+1=a;*jh=*jh+3;a=bwe-1;bwe-1=b0;b0=a;*jh=*jh+3;/堆排序void diup(point c)point ble;int i,jh=0,bj=0,*j,*bl;j=&jh;bl=&bj;for(i=0;i1;i-)diu(b,i,j,bl); cout堆排序:endl完成的序列如下:endl;for(i=0;ile;i+)coutbi.key ;coutendl共进行比较bj次,进行交换jh次endl*endl;void main()int i,j,n=10,ans,an;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号