第一范文网 - 专业文章范例文档资料分享平台

北邮数据结构实验报告-排序

来源:用户分享 时间:2025/7/23 22:19:49 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

if(min!=i) {

(*move)+=3; int Min; Min=r[min]; r[min]=r[i]; r[i]=Min; } } }

4 程序运行结果

4.1主函数流程图

4.2程序运行框图

5 实验心得

1.调试时出现的问题及解决的方法

在初期构思代码的时候,首先构造了各种算法的基本实现代码,封装成类,已经能够实现七种排序的基本功能,并且测试无误。

之后考虑如何能简化代码以实现多达七种排序算法的简单调用、乱序和顺序以及逆序数据的分别排序和性能指标统计(算法移动次数和比较次数的精确统计)。 2.心得体会

程序的优化是一个艰辛的过程,如果只是实现一般的功能,将变得容易很多,当加上优

化,不论是效率还是结构优化,都需要精心设计。 3.改进

本程序代码设计时运用了递归的调用方式,效率还可以通过将其转换为栈模拟的方式得以提高。另外还可以进一步考虑算法时间的精确统计,以便从时间角度比较这几种排序算法的优劣。

完整源代码

#include using namespace std;

void Insertsort(int r[],int n,int* compare,int* move); void ShellInsert(int r[],int n,int* compare,int* move); void Bubblesort(int r[],int n,int* compare,int* move); int Partion(int r[],int first,int end,int* compare,int* move); void Qsort(int r[],int i,int j,int* compare,int* move); void Selectsort(int r[],int n,int* compare,int* move);

void Insertsort(int r[],int n,int* compare,int* move)//插入排序 {

*compare=0; { } }

void ShellInsert(int r[],int n,int* compare,int* move)//希尔排序 {

int x=r[i];

for(j=i-1;x=0;j--) { }

if(j>=0) (*compare)++; r[j+1]=x;

(*move)++; r[j+1]=r[j]; *move=0; int i; int j;

for(i=1;i

(*compare)++;

*compare=0; {

for(int i=d;i<=n-1;i++)//从a[d]往后逐个元素确定是否需要前移 { } } }

void Bubblesort(int r[],int n,int* compare,int* move)//交换(冒泡)排序 { {

for(int i=n-1;i>j;i--) {

if(r[i]

(*compare)++; (*move)+=3; *compare=0; *move=0; int x;

if(r[i]

int x=r[i];

for(j=i-d;(j>=0)&&(x

(*compare)++; (*compare)++; (*move)++; r[j+d]=r[j];

*move=0; int j;

for(int d=n/2;d>=1;d=d/2)//间距越来越小

if(j>=0) r[j+d]=x; }

else (*compare)++;

for(int j=0;j

x=r[i]; r[i]=r[i-1]; r[i-1]=x; } }

else (*compare)++; }

搜索更多关于: 北邮数据结构实验报告-排序 的文档
北邮数据结构实验报告-排序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6qx8s8kzpj3qhtz4wh2h1h1yk7phau00sj7_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top