云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 北邮数据结构实验报告-排序

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

  • 62 次阅读
  • 3 次下载
  • 2025/12/2 23:41:18

化,不论是效率还是结构优化,都需要精心设计。 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)++; }

}

int Partion(int r[],int first,int end,int* compare,int* move)//快速排序中的轴定位 { int i=first; int j=end;

int zhou=r[i];//默认第一个元素为轴 while(i

if(i

(*compare)++; (*compare)++; i++;

while((i=zhou)) //查看右侧元素与轴的大小关系 { } if(i

(*compare)++; (*move)++; }

while((i

(*compare)++; j--;

r[i]=r[j];//发现轴右侧的某数比轴值小,将其前置

(*move)++;

r[j]=r[i];//发现轴左侧的某数比轴值小,将其后置

} }

r[i]=zhou;//最后确定轴的位置 return i; }

void Qsort(int r[],int i,int j,int* compare,int* move)//快速排序 { if(i

int centre=Partion(r,i,j,compare,move); Qsort(r,i,centre-1,compare,move); Qsort(r,centre+1,j,compare,move); }

}

void Selectsort(int r[],int n,int* compare,int* move)//选择排序 { {

int min=i;

for(int j=i+1;j

(*compare)++;

if(r[j]

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

void main() { int i;

int compare=0; int move=0;

cout<<\请您先输入一个正序数组哦\int n;

cout<<\请输入数组中含有的元素数量:\cin>>n; int *r=new int[n];

cout<<\请输入数组中的元素:\for(i=0;i>r[i]; int *a=new int[n]; for(i=0;i

*compare=0; *move=0;

for(int i=0;i

搜索更多关于: 北邮数据结构实验报告-排序 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

化,不论是效率还是结构优化,都需要精心设计。 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 e

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com